Požadavky: Nyní, když může být .NET Core multiplatformní, publikujte projekt do linuxového prostředí k provozu a projekt bude zahrnovat určité zpracování obrázků, jako je generování ověřovacích kódů, vodoznakování obrázků atd.
Nejprve vytvořte konzolový projekt .NET Core 3.1 (zdrojový kód je připojen na konci článku) a je třeba nainstalovat zpracování obrázků:System.Drawing.Common
Použijte balíček nuget ke správě instalace pomocí následujícího příkazu:
Projekt publikujte jako jeden soubor, cílová platforma je: linux-x64 a konfigurace publikace je následující:
<?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>Vydání</Configuration> <Platform>Jakýkoli procesor</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Souborový systém</PublishProtocol> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifier>linux-x64</RuntimeIdentifier> <SelfContained>Pravda</SelfContained> <PublishSingleFile>To je pravda</PublishSingleFile> <PublishTrimmed>Nepravda</PublishTrimmed> </PropertyGroup> </Project> (Vygenerovaný jediný spustitelný soubor ve skutečnosti obsahuje prostředí potřebné pro spuštění programu a cílový počítač nemusí SDK instalovat, nevýhodou je, že velikost souboru bude velmi velká.)
Nahrajte publikovaný soubor na server CentOS aUdělit souboru oprávnění k provádění! Jinak program nespustí následující příkaz:
Poté soubor spustíte a problémy, na které můžete narazit, jsou následující:
Pokud je chyba následující:
Neřešená výjimka. System.TypeInitializationException: Typový inicializátor pro 'Gdip' vyhodil výjimku. ---> System.DllNotFoundException: Nelze načíst sdílenou knihovnu 'libgdiplus' ani jednu z jejích závislostí. Pro lepší diagnostiku problémů s načítáním zvažte nastavení proměnné LD_DEBUG prostředí: liblibgdiplus: nelze otevřít soubor sdíleného objektu: Žádný takový soubor ani adresář na stránkách System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) na System.Drawing.SafeNativeMethods.Gdip.. cctor() --- Konec stopování vnitřních výjimek --- na System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(název souboru řetězce, IntPtr& image) na System.Drawing.Image.FromFile(Název souboru řetězce, Boolean useEmbeddedColorManagement) na stránkách System.Drawing.Image.FromFile(název souboru řetězce) na ImageWatermark.Program.Main(String[] args) Přerušeno Použijte následující příkazInstall libgdiplus-devel:
Zkuste to znovu provést a zjistíte, že provedení bylo úspěšné, jak ukazuje následující obrázek:
Zobrazit obrázek s vodoznakem a otevřít soubor "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", efekt je následující:
Objev,Čínské znaky jsou zkreslené, s anglickými znaky není problém, zkontrolujte písmo nainstalované systémem, příkaz je následující:
Pokud příkaz není v systému dostupný, musíme nejprve nainstalovat příslušný softwarový balíček, příkaz je následující:
Řešení: nainstalovat open-source komerčně dostupné písmo google-noto pomocí následujícího příkazu:
Upravte písmo použité ve zdrojovém kódu, znovu publikujte a nahrajte na server a výsledek spuštění je následující:
Vidíte, že můžete úspěšně přidat čínský vodoznak s následujícím kódem:
Stažení zdrojového kódu:
Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosím Odpověď
(Konec)
|