Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 50580|Válasz: 2

[.NET mag] .NET Core vízjelezési problémák Linux képeken

[Linket másol]
Közzétéve: 2021-3-28 14:46:15 | | | |
Követelmények: Most, hogy a .NET Core lehet többplatformos, a projektet a Linux környezetben kell közzétenni futáshoz, és a projekt tartalmaz némi képfeldolgozást, például ellenőrző kódok generálását, vízjeles képeket stb.

Először hozzon létre egy .NET Core 3.1 konzolprojektet (a forráskód a cikk végén található), és képfeldolgozást kell telepíteni:System.Rajzolás.Közös

A nuget csomagot használd a telepítés kezelésére a következő parancs segítségével:


A projektet egyetlen fájlként publikáljuk, a célplatform: linux-x64, és a kiadási konfiguráció a következő:

<?xml version="1.0" encoding="UTF-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration>Megjelenés</Configuration>
    <Platform>Bármilyen CPU</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Fájlrendszer</PublishProtocol>
    <TargetFramework>NetcoreApp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Igaz</SelfContained>
    <PublishSingleFile>Igaz</PublishSingleFile>
    <PublishTrimmed>Hamis</PublishTrimmed>
  </PropertyGroup>
</Project>
A generált egyetlen futtatható fájl valójában tartalmazza a program végrehajtásához szükséges környezetet, és nincs szükség a célszámítógépnek az SDK telepítésére, ráadásul a fájlméret nagyon nagyra nő.

Feltöltsük a közzétett fájlt a CentOS szerverre, ésAdj a fájl végrehajtási engedélyeit! Ellenkező esetben a program nem fut a következő parancsot:


Ezután futtatd le a fájlt, és a problémák, amelyekkel találkozhatsz, a következők:

A .NET Core egyetlen fájlút problémát jelent meg
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux hiba: Nem találtam érvényes ICU csomagot telepítve...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core hiba a Linux hibafeldolgozási alkalmazáscsomagban
https://www.itsvse.com/thread-9602-1-1.html
Ha a hiba a következő:

Kezeletlen kivétel. System.TypeInitializationException: A 'Gdip' típus inicializálója kivételt dobott.
---> System.DllNotFoundException: Nem tudta betölteni a 'libgdiplus' megosztott könyvtárat vagy valamelyik függőségét. A betöltési problémák diagnosztizálásához érdemes beállítani a LD_DEBUG környezeti változót: liblibgdiplus: cannot open shared object file: No such file or directory
   a System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup (IntPtr&token, StartupInput&input, StartupOutput&output) címen
   a System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- A belső kivétel verem követésének vége ---
   a System.Drawing.SafeNativeMethods.Gdip.Gdip.GdipLoadImageFromFile(String fájlnév, IntPtr& kép) címen
   at System.Drawing.Image.FromFile(String fájlnév, Boolean useEmbeddedColorManagement)
   a System.Drawing.Image.FromFile-nél (String fájlnév)
   at ImageWatermark.Program.Main(String[] args)
Megszakítva
Használja a következő parancsotTelepítsd libgdiplus-devel


Próbáld meg újraindítani, és azt láthatod, hogy a végrehajtás sikeres, ahogy az alábbi képen is látható:



Nézd meg a vízjeles képet, és nyissa meg az "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg" fájlt, a hatás a következő:



Felfedezés,A kínai karakterek összezavarodtak, nincs probléma az angol karakterekkel, ellenőrizd a rendszer által telepített betűtípust, a parancs a következő:



Ha a parancs nincs elérhető a rendszerben, először telepítenünk kell a megfelelő szoftvercsomagot, a parancs a következő:

Megoldás: telepítsd a nyílt forráskódú, kereskedelmi forgalomban elérhető google-noto betűtípust a következő parancsmal:



Módosítsuk a forráskódban használt betűtípust, újra kiadd és töltsd fel a szerverre, és a végrehajtási eredmény a következő:



Látható, hogy a következő kóddal sikeresen hozzáadhat kínai vízjelet:

Forráskód letöltés:

Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlekVálasz


(Vége)




Előző:A .NET Core egyetlen fájlút problémát jelent meg
Következő:.NET/C# Rule Engine RulesEngine tutorial
 Háziúr| Közzétéve: 2021-6-16 14:10:48 |
Közzétéve: 2022-12-29 11:49:27 |
Látható, hogy a következő kóddal sikeresen hozzáadhat kínai vízjelet:
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com