Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 50580|Svar: 2

[.NET Core] .NET Core-vattenmärkningsproblem på Linux-bilder

[Kopiera länk]
Publicerad den 28 april 2021 14:46:15 | | | |
Krav: Nu när .NET Core kan vara plattformsoberoende publiceras projektet i Linux-miljön för att köras, och projektet kommer att inkludera viss bildbehandling, såsom: generering av verifieringskoder, vattenstämning av bilder, etc.

Först, skapa ett .NET Core 3.1-konsolprojekt (källkoden bifogas i slutet av artikeln), och bildbehandling måste installeras:System.Ritning.Common

Använd nuget-paketet för att hantera installationen med följande kommando:


Publicera projektet som en enda fil, målplattformen är: linux-x64, och publiceringskonfigurationen är som följer:

<?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>Utgåva</Configuration>
    <Platform>Vilken CPU som helst</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>Falskt</PublishTrimmed>
  </PropertyGroup>
</Project>
Den genererade enda exekverbara filen innehåller faktiskt den miljö som krävs för att köra programmet, och det finns inget behov för måldatorn att installera SDK:n, och nackdelen är att filstorleken blir mycket stor.

Ladda upp den publicerade filen till CentOS-servern, ochGe filen exekveringsbehörigheter! Annars kommer programmet inte att köras med följande kommando:


Kör sedan filen, och de problem du kan stöta på är följande:

.NET Core släpper ett problem med en enda filväg
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux-fel: Kunde inte hitta ett giltigt ICU-paket installerat...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core-fel i Linux Failure-behandlingsapplikationspaket
https://www.itsvse.com/thread-9602-1-1.html
Om felet är följande:

Undantag för ohanterad användning. System.TypeInitializationException: Typinitialiseraren för 'Gdip' gav ett undantag.
---> System.DllNotFoundException: Kan inte ladda det delade biblioteket 'libgdiplus' eller någon av dess beroenden. För att hjälpa till att diagnostisera laddningsproblem, överväg att sätta LD_DEBUG miljövariabeln: libgdiplus: kan inte öppna delad objektfil: Ingen sådan fil eller katalog
   på System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   på System.Ritning.SäkerNativeMethods.Gdip.. cctor()
   --- Slutspårning av inre undantagsstack ---
   på System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Strängfilnamn, IntPtr&-bild)
   på System.Drawing.Image.FromFile(Strängfilnamn, Boolean useEmbeddedColorManagement)
   på System.Drawing.Image.FromFile(Strängfilnamn)
   på ImageWatermark.Program.Main(String[] args)
Avbrutet
Använd följande kommandoInstallera libgdiplus-devel


Försök att köra om, och du kan se att utförandet lyckades, som visas i följande bild:



Titta på den vattenmärkta bilden och öppna filen "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", effekten är följande:



Upptäckt,Kinesiska tecken är förvrängda, det är inga problem med engelska tecken, kontrollera typsnittet som installerats av systemet, kommandot är följande:



Om kommandot inte finns tillgängligt i systemet måste vi först installera relevant mjukvarupaket, kommandot är följande:

Lösning, installera det kommersiellt tillgängliga öppna google-noto-typsnittet med följande kommando:



Ändra typsnittet som används i källkoden, publicera om och ladda upp till servern, och exekveringsresultatet blir följande:



Du kan se att du framgångsrikt kan lägga till en kinesisk vattenstämpel med följande kod:

Källkodsnedladdning:

Turister, om ni vill se det dolda innehållet i detta inlägg, snällaSvar


(Slut)




Föregående:.NET Core släpper ett problem med en enda filväg
Nästa:.NET/C# Regelmotor RulesEngine-handledning
 Hyresvärd| Publicerad den 2021-6-16 14:10:48 |
Publicerad 2022-12-29 11:49:27 |
Du kan se att du framgångsrikt kan lägga till en kinesisk vattenstämpel med följande kod:
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com