Requisiti: Ora che .NET Core può essere multipiattaforma, pubblica il progetto sull'ambiente Linux per farlo eseguire, e il progetto includerà alcune elaborazioni delle immagini, come: generare codici di verifica, affidare immagini con filigrane, ecc.
Per prima cosa, crea un progetto console .NET Core 3.1 (il codice sorgente è allegato alla fine dell'articolo) e è necessario installare l'elaborazione delle immagini:Sistema.Disegno.Comune
Usa il pacchetto nuget per gestire l'installazione con il seguente comando:
Pubblica il progetto come un singolo file, la piattaforma di destinazione è: linux-x64, e la configurazione di pubblicazione è la seguente:
<?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>Distribuzione</Configuration> <Platform>Qualsiasi CPU</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>File System</PublishProtocol> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifier>Linux-x64</RuntimeIdentifier> <SelfContained>Vero</SelfContained> <PublishSingleFile>Vero</PublishSingleFile> <PublishTrimmed>Falso</PublishTrimmed> </PropertyGroup> </Project> (Il singolo file eseguibile generato contiene in realtà l'ambiente necessario per l'esecuzione del programma, e non è necessario che il computer di destinazione installi l'SDK, e lo svantaggio è che la dimensione del file diventerà molto grande.)
Carica il file pubblicato sul server CentOS, eConcedere ai file i permessi di esecuzione! Altrimenti, il programma non verrà eseguito con il seguente comando:
Poi esegui il file, e i problemi che potresti incontrare sono i seguenti:
Se l'errore è il seguente:
Eccezione non risolta. System.TypeInitializationException: L'inizializzatore di tipo per 'Gdip' ha lanciato un'eccezione. ---> System.DllNotFoundException: Impossibile caricare la libreria condivisa 'libgdiplus' o una delle sue dipendenze. Per aiutare a diagnosticare i problemi di caricamento, considera di impostare la variabile di ambiente LD_DEBUG: liblibgdiplus: non può aprire file oggetto condiviso: Nessun file o directory del genere su System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) su System.Drawing.SafeNativeMethods.Gdip.. cctor() --- Fine della traccia interna della pila eccezionale --- su System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Stringname file, IntPtr& image) su System.Drawing.Image.FromFile (Stringname file, boolean useEmbeddedColorManagement) su System.Drawing.Image.FromFile (Nome file stringa) su ImageWatermark.Program.Main(String[] args) Abortito Usa il seguente comandoInstalla libgdiplus-devel:
Prova a rieseguire e puoi scoprire che l'esecuzione è andata bene, come mostrato nell'immagine seguente:
Visualizza l'immagine con filigrana e apri il file "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", l'effetto è il seguente:
Scoperta,I caratteri cinesi sono confusi, non c'è problema con i caratteri inglesi, controlla il font installato dal sistema, il comando è il seguente:
Se il comando non è disponibile nel sistema, dobbiamo prima installare il pacchetto software pertinente, il comando è il seguente:
Soluzione: installare il font open-source disponibile commercialmente google-noto con il seguente comando:
Modifica il font usato nel codice sorgente, ripubblica e carica sul server, e il risultato dell'esecuzione è il seguente:
Puoi vedere che puoi aggiungere con successo una filigrana cinese con il seguente codice:
Scarica codice sorgente:
Turisti, se volete vedere il contenuto nascosto di questo post, vi prego Risposta
(Fine)
|