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:
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, alsjeblieft Antwoord
(Einde)
|