Krav: Nu hvor .NET Core kan være platformoversigtsoverførende, kan projektet udgives til Linux-miljøet for at køre, og projektet vil inkludere noget billedbehandling, såsom: generering af verifikationskoder, vandmærkning af billeder osv.
Først skal der oprettes et .NET Core 3.1 konsolprojekt (kildekoden er vedhæftet i slutningen af artiklen), og billedbehandling skal installeres:System.Tegning.Fælles
Brug nuget-pakken til at administrere installationen med følgende kommando:
Publicér projektet som en enkelt fil, målplatformen er: linux-x64, og udgivelseskonfigurationen er som følger:
<?xml version="1.0" kodning="utf-8"?> <!--
https://go.microsoft.com/fwlink/?LinkID=208121. --> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration>Udgivelse</Configuration> <Platform>Enhver CPU</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Filsystem</PublishProtocol> <TargetFramework>NetCoreApp3.1</TargetFramework> <RuntimeIdentifier>Linux-x64</RuntimeIdentifier> <SelfContained>Sandt</SelfContained> <PublishSingleFile>Sandt</PublishSingleFile> <PublishTrimmed>Falsk</PublishTrimmed> </PropertyGroup> </Project> (Den genererede enkelt-eksekverbare fil indeholder faktisk det miljø, der kræves for programmets eksekvering, og der er ikke behov for, at målcomputeren installerer SDK'en, og ulempen er, at filstørrelsen bliver meget stor.)
Upload den publicerede fil til CentOS-serveren, ogGiv filen eksekveringstilladelser! Ellers vil programmet ikke køre med følgende kommando:
Derefter kører du filen, og de problemer, du kan støde på, er som følger:
Hvis fejlen er som følger:
Ubehandlet undtagelse. System.TypeInitializationException: Typeinitializeren for 'Gdip' kastede en undtagelse. ---> System.DllNotFoundException: Kan ikke indlæse det delte bibliotek 'libgdiplus' eller en af dets afhængigheder. For at hjælpe med at diagnosticere indlæsningsproblemer, overvej at sætte LD_DEBUG miljøvariabelen: libgdiplus: kan ikke åbne delt objektfil: Ingen sådan fil eller mappe på System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) på System.Tegning.SafeNativeMethods.Gdip.. cctor() --- Slutspor af indre undtagelsesstak --- på System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Strengfilnavn, IntPtr&-billede) på System.Drawing.Image.FromFile(Strengfilnavn, Boolean useEmbeddedColorManagement) på System.Drawing.Image.FromFile(Strengfilnavn) på ImageWatermark.Program.Main(String[] args) Afbrudt Brug følgende kommandoInstaller libgdiplus-devel:
Prøv at genudføre, og du kan opdage, at udførelsen lykkedes, som vist på følgende billede:
Se det vandmærkede billede og åbn "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg"-filen, effekten er som følger:
Opdagelse,Kinesiske tegn er forvanskede, der er ikke noget problem med engelske tegn, tjek den skrifttype, der er installeret af systemet, kommandoen er som følger:
Hvis kommandoen ikke er tilgængelig i systemet, skal vi først installere den relevante softwarepakke, kommandoen er som følger:
Løsning: installer den kommercielt tilgængelige open source-google-noto-skrifttype med følgende kommando:
Ændr skrifttypen brugt i kildekoden, genudgiver og upload til serveren, og udførelsesresultatet er som følger:
Du kan se, at du med succes kan tilføje et kinesisk vandmærke med følgende kode:
Kildekode-download:
Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venlig Svar
(Slut)
|