Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 50580|Odpověď: 2

[.NET Core] Problémy s vodoznakováním .NET Core na obrázcích Linuxu

[Kopírovat odkaz]
Zveřejněno 28. 3. 2021 14:46:15 | | | |
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í:

.NET Core vydává problém s jedinou cestou k souboru
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux Error: Nepodařilo se najít platný ICU balíček nainstalovaný...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core chyba v balíčku aplikací Linux Failure Processing
https://www.itsvse.com/thread-9602-1-1.html
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ímOdpověď


(Konec)




Předchozí:.NET Core vydává problém s jedinou cestou k souboru
Další:.NET/C# Pravidlový engine RulesEngine tutoriál
 Pronajímatel| Zveřejněno 16. 6. 2021 14:10:48 |
Zveřejněno 29. 12. 2022 11:49:27 |
Vidíte, že můžete úspěšně přidat čínský vodoznak s následujícím kódem:
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com