Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 50580|Svar: 2

[.NET Core] .NET Core-vandmærkningsproblemer på Linux-billeder

[Kopier link]
Opslået den 28-3-2021 14:46:15 | | | |
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:

.NET Core frigiver et enkelt filsti-problem
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux-fejl: Kunne ikke finde en gyldig ICU-pakke installeret...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core-fejl i Linux fejlbehandlingsapplikationspakke
https://www.itsvse.com/thread-9602-1-1.html
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 venligSvar


(Slut)




Tidligere:.NET Core frigiver et enkelt filsti-problem
Næste:.NET/C# Rule Engine RulesEngine vejledning
 Udlejer| Opslået den 16-6-2021 14:10:48 |
Opslået den 29-12-2022 11:49:27 |
Du kan se, at du med succes kan tilføje et kinesisk vandmærke med følgende kode:
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com