Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 50580|Antwort: 2

[.NET Core] .NET Core-Wassermarkierungsprobleme bei Linux-Bildern

[Link kopieren]
Veröffentlicht am 28.03.2021, 14:46:15 | | | |
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:

.NET Core löst ein Problem mit einem einzelnen Dateipfad
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux-Fehler: Konnte kein gültiges ICU-Paket gefunden...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core-Fehler im Linux-Fehlerverarbeitungs-Anwendungsbundle
https://www.itsvse.com/thread-9602-1-1.html
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, bitteAntwort


(Ende)




Vorhergehend:.NET Core löst ein Problem mit einem einzelnen Dateipfad
Nächster:.NET/C# Rule Engine RulesEngine Tutorial
 Vermieter| Veröffentlicht am 16.6.2021, 14:10:48 |
Veröffentlicht am 29.12.2022, 11:49:27 |
Sie können sehen, dass Sie erfolgreich ein chinesisches Wasserzeichen mit folgendem Code hinzufügen können:
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com