Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 50580|Antwoord: 2

[.NET Core] .NET Core-watermarkingproblemen op Linux-afbeeldingen

[Link kopiëren]
Geplaatst op 28-3-2021 14:46:15 | | | |
Vereisten: Nu .NET Core cross-platform kan zijn, publiceer het project naar de Linux-omgeving om uit te voeren, en zal het project enige beeldverwerking bevatten, zoals: het genereren van verificatiecodes, watermerkbeelden, enzovoort.

Maak eerst een .NET Core 3.1 consoleproject aan (de broncode wordt aan het einde van het artikel bijgevoegd), en moet beeldverwerking worden geïnstalleerd:Systeem.Teken.Algemeen

Gebruik het nuget-pakket om de installatie te beheren met het volgende commando:


Publiceer het project als één bestand, het doelplatform is: linux-x64, en de publicatieconfiguratie is als volgt:

<?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>Uitgave</Configuration>
    <Platform>Elke CPU</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>FileSystem</PublishProtocol>
    <TargetFramework>NetCoreApp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    waar <SelfContained></SelfContained>
    <PublishSingleFile>Dat klopt</PublishSingleFile>
    <PublishTrimmed>Vals</PublishTrimmed>
  </PropertyGroup>
</Project>
Het gegenereerde enkele uitvoerbare bestand bevat daadwerkelijk de omgeving die nodig is voor de uitvoering van het programma, en de doelcomputer hoeft de SDK niet te installeren, en het nadeel is dat de bestandsgrootte erg groot wordt.

Upload het gepubliceerde bestand naar de CentOS-server, enGeef het bestand uitvoeringsrechten! Anders zal het programma niet draaien met het volgende commando:


Voer vervolgens het bestand uit, en de problemen die je kunt tegenkomen zijn als volgt:

.NET Core lost een probleem met één bestandspad op
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux-fout: Geen geldig ICU-pakket kunnen vinden, geïnstalleerd...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core-fout in Linux Failure-verwerkingsapplicatiebundel
https://www.itsvse.com/thread-9602-1-1.html
Als de fout als volgt is:

Onbehandelde uitzondering. System.TypeInitializationException: De type-initializer voor 'Gdip' heeft een uitzondering gegooid.
---> System.DllNotFoundException: Gedeelde bibliotheek 'libgdiplus' of een van de afhankelijkheden kan niet laden. Om laadproblemen te helpen diagnosticeren, overweeg het instellen van de LD_DEBUG omgevingsvariabele: liblibgdiplus: kan gedeeld object bestand niet openen: Geen dergelijk bestand of map
   op System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   bij System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Einde van de inner exception stack trace ---
   op System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(String-bestandsnaam, IntPtr&-afbeelding)
   op System.Drawing.Image.FromFile(Stringbestandsnaam, Boolean useEmbeddedColorManagement)
   op System.Drawing.Image.FromFile(String-bestandsnaam)
   op ImageWatermark.Program.Main(String[] args)
Afgebroken
Gebruik het volgende commandoInstalleer libgdiplus-devel


Probeer opnieuw uit te voeren, en je zult zien dat de uitvoering is geslaagd, zoals te zien is in de volgende afbeelding:



Bekijk het watergetekende beeld en open het "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg"-bestand, het effect is als volgt:



Ontdekking,Chinese karakters zijn onverstaanbaar, er is geen probleem met Engelse tekens, controleer het lettertype dat door het systeem is geïnstalleerd, het commando is als volgt:



Als het commando niet beschikbaar is in het systeem, moeten we eerst het relevante softwarepakket installeren, het commando is als volgt:

Oplossing: installeer het open-source commercieel verkrijgbare google-noto lettertype met het volgende commando:



Pas het lettertype dat in de broncode wordt gebruikt, publiceer opnieuw en upload het naar de server, en het uitvoeringsresultaat is als volgt:



Je kunt zien dat je met succes een Chinees watermerk kunt toevoegen met de volgende code:

Broncode downloaden:

Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieftAntwoord


(Einde)




Vorig:.NET Core lost een probleem met één bestandspad op
Volgend:.NET/C# Rule Engine RulesEngine tutorial
 Huisbaas| Geplaatst op 2021-6-16 14:10:48 |
Geplaatst op 29-12-2022 11:49:27 |
Je kunt zien dat je met succes een Chinees watermerk kunt toevoegen met de volgende code:
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com