Krav: Nå som .NET Core kan være plattformuavhengig, publiser prosjektet i Linux-miljøet for å kjøre, og prosjektet vil inkludere noe bildebehandling, som for eksempel: generering av verifiseringskoder, vannmerking av bilder osv.
Først, lag et .NET Core 3.1-konsollprosjekt (kildekoden er vedlagt på slutten av artikkelen), og bildebehandling må installeres:System.Tegning.Felles
Bruk nuget-pakken for å administrere installasjonen med følgende kommando:
Publiser prosjektet som én fil, målplattformen er: linux-x64, og publiseringskonfigurasjonen er som følger:
<?xml versjon="1.0" koding="utf-8"?> <!--
https://go.microsoft.com/fwlink/?LinkID=208121. --> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration>Utgivelse</Configuration> <Platform>Hvilken som helst CPU</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Filsystem</PublishProtocol> <TargetFramework>NetCoreApp3.1</TargetFramework> <RuntimeIdentifier>Linux-x64</RuntimeIdentifier> <SelfContained>Sant</SelfContained> <PublishSingleFile>Sant</PublishSingleFile> <PublishTrimmed>Falsk</PublishTrimmed> </PropertyGroup> </Project> (Den genererte enkeltkjørbare filen inneholder faktisk miljøet som kreves for å kjøre programmet, og det er ikke nødvendig for målmaskinen å installere SDK-en, og ulempen er at filstørrelsen vil bli svært stor.)
Last opp den publiserte filen til CentOS-serveren, ogGi filen utførelsestillatelser! Ellers vil ikke programmet kjøre med følgende kommando:
Deretter kjører du filen, og problemene du kan støte på er som følger:
Hvis feilen er som følger:
Unntak for ubehandlet. System.TypeInitializationException: Typeinitializeren for 'Gdip' kastet et unntak. ---> System.DllNotFoundException: Kan ikke laste det delte biblioteket 'libgdiplus' eller en av dets avhengigheter. For å hjelpe med å diagnostisere lasteproblemer, vurder å sette LD_DEBUG miljøvariabelen: libgdiplus: kan ikke åpne delt objektfil: Ingen slik fil eller katalog på System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) på System.Drawing.SafeNativeMethods.Gdip.. cctor() --- Slutt på indre unntaksstakksporing --- på System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Strengfilnavn, IntPtr&-bilde) på System.Drawing.Image.FromFile(Strengfilnavn, boolsk useEmbeddedColorManagement) på System.Drawing.Image.FromFile(Strengfilnavn) på ImageWatermark.Program.Main(String[] args) Avbrutt Bruk følgende kommandoInstaller libgdiplus-devel:
Prøv å kjøre på nytt, og du kan se at utførelsen lyktes, som vist i følgende bilde:
Se på det vannmerkede bildet og åpne "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg"-filen, effekten er som følger:
Oppdagelse,Kinesiske tegn er forvrengt, det er ikke noe problem med engelske tegn, sjekk fonten installert av systemet, kommandoen er som følger:
Hvis kommandoen ikke er tilgjengelig i systemet, må vi installere den relevante programvarepakken først, kommandoen er som følger:
Løsning, installer den kommersielt tilgjengelige google-noto-fonten med følgende kommando:
Endre fonten som brukes i kildekoden, publiser på nytt og last opp til serveren, og resultatet blir som følger:
Du kan se at du kan legge til et kinesisk vannmerke med følgende kode:
Nedlasting av kildekode:
Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snill Svare
(Slutt)
|