Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 50580|Răspunde: 2

[.NET Core] Probleme cu watermarking-ul .NET Core pe imaginile Linux

[Copiază linkul]
Postat pe 28-03-2021 14:46:15 | | | |
Cerințe: Acum că .NET Core poate fi cross-platform, publicați proiectul în mediul Linux pentru a rula, iar proiectul va include unele procesări de imagine, cum ar fi: generarea codurilor de verificare, fixarea cu filigrane a imaginilor etc.

Mai întâi, creează un proiect de consolă .NET Core 3.1 (codul sursă este atașat la finalul articolului), iar procesarea imaginilor trebuie instalată:System.Drawing.Common

Folosește pachetul nuget pentru a gestiona instalarea cu următoarea comandă:


Publică proiectul ca un singur fișier, platforma țintă este: linux-x64, iar configurația de publicare este următoarea:

<?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>Lansare</Configuration>
    <Platform>Orice CPU</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Sistem de fișiere</PublishProtocol>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Adevărat</SelfContained>
    <PublishSingleFile>Adevărat</PublishSingleFile>
    <PublishTrimmed>Fals</PublishTrimmed>
  </PropertyGroup>
</Project>
Fișierul executabil unic generat conține de fapt mediul necesar pentru execuția programului, iar nu este nevoie ca calculatorul țintă să instaleze SDK-ul, iar dezavantajul este că dimensiunea fișierului va deveni foarte mare.

Încarcă fișierul publicat pe serverul CentOS șiAcordă permisiuni de execuție fișierului! Altfel, programul nu va rula cu următoarea comandă:


Apoi executați fișierul, iar problemele pe care le puteți întâmpina sunt următoarele:

.NET Core lansează o problemă cu calea unui singur fișier
https://www.itsvse.com/thread-9604-1-1.html

Eroare Linux .NET Core: Nu am găsit niciun pachet ICU valid instalat...
https://www.itsvse.com/thread-9603-1-1.html

Eroare .NET Core în pachetul aplicației Linux Failure processing
https://www.itsvse.com/thread-9602-1-1.html
Dacă eroarea este următoarea:

Excepție nerezolvată. System.TypeInitializationException: Inițializatorul de tip pentru 'Gdip' a aruncat o excepție.
---> System.DllNotFoundException: Nu se poate încărca biblioteca partajată 'libgdiplus' sau una dintre dependențele sale. Pentru a ajuta la diagnosticarea problemelor de încărcare, luați în considerare setarea LD_DEBUG variabilă de mediu: liblibgdiplus: nu se poate deschide fișierul obiect partajat: Nu există astfel de fișier sau director
   la System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   la System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Sfârșitul traseului interioară al stiei excepțiilor ---
   la System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Nume fișier string, IntPtr& imagine)
   la System.Drawing.Image.FromFile(Nume de fișier string, boolean useEmbeddedColorManagement)
   la System.Drawing.Image.FromFile (Nume fișier string)
   la ImageWatermark.Program.Main(String[] args)
Anulat
Folosește următoarea comandăInstall libgdiplus-devel


Încearcă să re-execuți și vei vedea că executarea a reușit, așa cum se arată în imaginea următoare:



Vizualizați imaginea filiată și deschideți fișierul "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", efectul este următorul:



Descoperire,Caracterele chinezești sunt distorsionate, nu există probleme cu caracterele englezești, verifică fontul instalat de sistem, comanda este următoarea:



Dacă comanda nu este disponibilă în sistem, trebuie să instalăm mai întâi pachetul software relevant, comanda fiind următoarea:

Soluția, instalează fontul open-source comercial google-noto cu următoarea comandă:



Modificați fontul folosit în codul sursă, republicați și încărcați pe server, iar rezultatul execuției este următorul:



Puteți vedea că puteți adăuga cu succes un filigrană chinezesc cu următorul cod:

Descărcare cod sursă:

Turiști, dacă vreți să vedeți conținutul ascuns al acestei postări, vă rogRăspunde


(Sfârșit)




Precedent:.NET Core lansează o problemă cu calea unui singur fișier
Următor:.NET/C# Tutorial pentru Rules Engine
 Proprietarul| Postat la 2021-6-16 14:10:48 |
Postat la 29-12-2022 11:49:27 |
Puteți vedea că puteți adăuga cu succes un filigrană chinezesc cu următorul cod:
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com