See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 50580|Vastuse: 2

[.NET tuum] .NET Core'i vesimärkimise probleemid Linuxi piltidel

[Kopeeri link]
Postitatud 2021-3-28 14:46:15 | | | |
Nõuded: Nüüd, kui .NET Core saab olla platvormideülene, avalda projekt Linuxi keskkonda käivitamiseks ning projekt sisaldab mõningast pilditöötlust, näiteks: verifitseerimiskoodide genereerimist, piltide vesimärgistamist jne.

Esiteks loo .NET Core 3.1 konsooliprojekt (lähtekood on artikli lõpus manuses) ja pilditöötlus tuleb paigaldada:Süsteem.Joonistus.Ühine

Kasuta nuget paketti, et hallata paigaldust järgmise käsuga:


Avalda projekt ühe failina, sihtplatvorm on: linux-x64 ja avaldamise konfiguratsioon on järgmine:

<?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>Väljalase</Configuration>
    <Platform>Ükskõik milline protsessor</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Failisüsteem</PublishProtocol>
    <TargetFramework>NetCoreApp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Tõsi</SelfContained>
    <PublishSingleFile>Tõsi</PublishSingleFile>
    <PublishTrimmed>Vale</PublishTrimmed>
  </PropertyGroup>
</Project>
Genereeritud üksik täidetav fail sisaldab tegelikult programmi käivitamiseks vajalikku keskkonda ning sihtarvutil pole vaja SDK-d paigaldada, ning puuduseks on faili suurus väga suur.

Laadi avaldatud fail üles CentOS serverisse, jaAnna failile täitmisõigused! Vastasel juhul ei käivitu programm järgmise käsuga:


Seejärel käivita fail ja probleemid, millega kokku puutud, on järgmised:

.NET Core vabastab ühe failitee probleemi
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linuxi viga: Ei leidnud kehtivat ICU paketti paigaldatud...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core viga Linux Failure Processing rakenduste komplektis
https://www.itsvse.com/thread-9602-1-1.html
Kui viga on järgmine:

Lahendamata erand. System.TypeInitializationException: 'Gdip' tüübi initsialiseerija viskas erandi.
---> System.DllNotFoundException: Ei suuda laadida jagatud teeki 'libgdiplus' ega selle sõltuvust. Laadimisprobleemide diagnoosimiseks kaaluge LD_DEBUG keskkonnamuutuja määramist: liblibgdiplus: cannot open shared object file: No such file or folder
   aadressil System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr&token, StartupInput&input, StartupOutput&output)
   aadressil System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Sisemise erandi virna jälje lõpp ---
   aadressil System.Drawing.SafeNativeMethods.Gdip.Gdip.GdipLoadImageFromFile(Stringi failinimi, IntPtr&pilt)
   aadressil System.Drawing.Image.FromFile (stringi failinimi, Boolean useEmbeddedColorManagement)
   aadressil System.Drawing.Image.FromFile (stringi failinimi)
   aadressil ImageWatermark.Program.Main(String[] args)
Katkestatud
Kasuta järgmist käskuPaigalda libgdiplus-devel


Proovi uuesti käivitada ja näed, et täitmine õnnestus, nagu näidatud järgmisel pildil:



Vaata vesimärgiga pilti ja ava "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg" fail, tulemus on järgmine:



Avastus,Hiina tähed on segased, ingliskeelsete märkidega pole probleemi, kontrolli süsteemi poolt paigaldatud fonti, käsk on järgmine:



Kui käsk pole süsteemis saadaval, peame esmalt paigaldama vastava tarkvarapaketi, käsk on järgmine:

Lahendus: paigalda avatud lähtekoodiga kommertslikult saadaval olev google-noto font järgmise käsuga:



Muuda lähtekoodis kasutatud fonti, avalda uuesti ja lae serverisse üles ning täitmise tulemus on järgmine:



Näete, et saate edukalt lisada hiina vesimärgi järgmise koodiga:

Lähtekoodi allalaadimine:

Turistid, kui soovite näha selle postituse peidetud sisu, palunVastuse


(Lõpp)




Eelmine:.NET Core vabastab ühe failitee probleemi
Järgmine:.NET/C# Rule Engine RulesEngine õpetus
 Üürileandja| Postitatud 2021-6-16 14:10:48 |
Postitatud 2022-12-29 11:49:27 |
Näete, et saate edukalt lisada hiina vesimärgi järgmise koodiga:
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com