Anforderungen: Da .NET Core nun plattformübergreifend sein kann, wird das Projekt in der Linux-Umgebung veröffentlicht, um ausgeführt zu werden, und das Projekt wird einige Bildverarbeitung enthalten, wie zum Beispiel: Erstellung von Verifizierungscodes, Wassermarkierung von Bildern usw.
Erstens: Erstellen Sie ein .NET Core 3.1-Konsolenprojekt (der Quellcode ist am Ende des Artikels beigefügt), und die Bildverarbeitung muss installiert werden:System.Zeichnung.Gemeinsam
Verwenden Sie das Nuget-Paket, um die Installation mit folgendem Befehl zu verwalten:
Veröffentlichen Sie das Projekt als einzelne Datei, die Zielplattform ist: linux-x64, und die Veröffentlichungskonfiguration ist wie folgt:
<?xml version="1.0" coding="utf-8"?> <!--
https://go.microsoft.com/fwlink/?LinkID=208121. --> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration>Veröffentlichung</Configuration> <Platform>Jede CPU</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Dateisystem</PublishProtocol> <TargetFramework>NetCoreApp3.1</TargetFramework> <RuntimeIdentifier>linux-x64</RuntimeIdentifier> <SelfContained>STIMMT</SelfContained> <PublishSingleFile>STIMMT</PublishSingleFile> <PublishTrimmed>FALSCH</PublishTrimmed> </PropertyGroup> </Project> (Die generierte einzelne ausführbare Datei enthält tatsächlich die Umgebung, die für die Ausführung des Programms erforderlich ist, und der Zielcomputer muss das SDK nicht installieren; der Nachteil ist, dass die Dateigröße sehr groß wird.)
Laden Sie die veröffentlichte Datei auf den CentOS-Server hoch, undGib der Datei Ausführungsrechte! Andernfalls wird das Programm nicht mit folgendem Befehl ausgeführt:
Dann führen Sie die Datei aus, und die Probleme, auf die Sie stoßen könnten, sind wie folgt:
Wenn der Fehler wie folgt ist:
Unbearbeitete Ausnahme. System.TypeInitializationException: Der Typinitialisierer für 'Gdip' hat eine Ausnahme ausgelöst. ---> System.DllNotFoundException: Kann die gemeinsame Bibliothek 'libgdiplus' oder eine ihrer Abhängigkeiten nicht laden. Um Ladeprobleme zu diagnostizieren, sollten Sie die LD_DEBUG Umgebungsvariable setzen: liblibgdiplus: cannot open shared object file: No such file or directory bei System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& Token, StartupInput& input, StartupOutput& output) bei System.Zeichnung.SafeNativeMethods.Gdip.. cctor() --- Ende des inneren Ausnahmestack-Traces --- bei System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(String-Dateiname, IntPtr&-Bild) bei System.Drawing.Image.FromFile(String-Dateiname, boolean useEmbeddedColorManagement) bei System.Drawing.Image.FromFile(String-Dateiname) bei ImageWatermark.Program.Main(String[] args) Abgebrochen Verwenden Sie folgenden BefehlInstalliere libgdiplus-devel:
Versuchen Sie, die Ausführung erneut auszuführen, und Sie können feststellen, dass die Ausführung erfolgreich war, wie im folgenden Bild gezeigt:
Sehen Sie sich das wassermarkierte Bild an und öffnen Sie die Datei "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", der Effekt ist wie folgt:
Entdeckung,Die chinesischen Schriftzeichen sind verzerrt, es gibt kein Problem mit englischen Zeichen, überprüfen Sie die vom System installierte Schriftart, der Befehl lautet wie folgt:
Wenn der Befehl im System nicht verfügbar ist, müssen wir zuerst das entsprechende Softwarepaket installieren, der Befehl lautet wie folgt:
Lösung: Installieren Sie die kommerziell als Open Source erhältliche Google-Noto-Schrift mit folgendem Befehl:
Ändere die im Quellcode verwendete Schriftart, veröffentliche sie erneut und lade sie auf den Server hoch, und das Ausführungsergebnis ist wie folgt:
Sie können sehen, dass Sie erfolgreich ein chinesisches Wasserzeichen mit folgendem Code hinzufügen können:
Quellcode-Download:
Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitte Antwort
(Ende)
|