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:
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ă rog Răspunde
(Sfârșit)
|