Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 50580|Atsakyti: 2

[.NET branduolys] .NET Core vandens ženklų problemos Linux nuotraukose

[Kopijuoti nuorodą]
Publikuota: 2021-3-28 14:46:15 | | | |
Reikalavimai: Dabar, kai .NET Core gali būti kelių platformų, paskelbkite projektą Linux aplinkoje, kad jis veiktų, o projektas apims tam tikrą vaizdo apdorojimą, pvz.: patvirtinimo kodų, vandens ženklų vaizdų generavimą ir kt.

Pirmiausia sukurkite ".NET Core 3.1" konsolės projektą (šaltinio kodas pridedamas straipsnio pabaigoje) ir reikia įdiegti vaizdo apdorojimą:Sistema.Piešimas.Bendra

Naudokite nuget paketą, kad valdytumėte diegimą naudodami šią komandą:


Publikuokite projektą kaip vieną failą, tikslinė platforma yra: linux-x64, o publikavimo konfigūracija yra tokia:

<?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>Išleidimas</Configuration>
    <Platform>Bet koks procesorius</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Failų sistema</PublishProtocol>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Tiesa</SelfContained>
    <PublishSingleFile>Tiesa</PublishSingleFile>
    <PublishTrimmed>Klaidinga</PublishTrimmed>
  </PropertyGroup>
</Project>
Sugeneruotame viename vykdomajame faile iš tikrųjų yra aplinka, reikalinga programai vykdyti, ir tiksliniam kompiuteriui nereikia įdiegti SDK, o trūkumas yra tas, kad failo dydis taps labai didelis.

Įkelkite paskelbtą failą į "CentOS" serverį irSuteikti failo vykdymo teises! Priešingu atveju programa neveiks su šia komanda:


Tada paleiskite failą ir problemos, su kuriomis galite susidurti, yra šios:

.NET Core išleidžia vieno failo kelio problemą
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux klaida: nepavyko rasti įdiegto galiojančio ICU paketo...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core klaida Linux Klaidų apdorojimo programų paketas
https://www.itsvse.com/thread-9602-1-1.html
Jei klaida yra tokia:

Neapdorota išimtis. System.TypeInitializationException: Gdip tipo iniciatorius pateikė išimtį.
---> System.DllNotFoundException: neįmanoma įkelti bendrai naudojamos bibliotekos libgdiplus arba vienos iš jos priklausomybių. Norėdami padėti diagnozuoti įkėlimo problemas, apsvarstykite galimybę nustatyti LD_DEBUG aplinkos kintamąjį: liblibgdiplus: negalima atidaryti bendrai naudojamo objekto failo: nėra tokio failo ar katalogo
   System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& žetonas, StartupInput& input, StartupOutput& output)
   adresu System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Vidinių išimčių rietuvės sekimo --- pabaiga
   System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Eilutės failo pavadinimas, IntPtr& vaizdas)
   System.Drawing.Image.FromFile(Eilutės failo pavadinimas, Bulio logikos useEmbeddedColorManagement)
   System.Drawing.Image.FromFile(Eilutės failo pavadinimas)
   ImageWatermark.Program.Main(String[] argumentai)
Nutraukta
Naudokite šią komandąĮdiekite libgdiplus-devel


Pabandykite vykdyti iš naujo ir pamatysite, kad vykdymas pavyko, kaip parodyta šiame paveikslėlyje:



Peržiūrėkite vandens ženklu pažymėtą vaizdą ir atidarykite failą "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", efektas yra toks:



Atradimas,Kinų rašmenys yra iškraipyti, nėra problemų su angliškais simboliais, patikrinkite sistemos įdiegtą šriftą, komanda yra tokia:



Jei komandos sistemoje nėra, pirmiausia turime įdiegti atitinkamą programinės įrangos paketą, komanda yra tokia:

Sprendimas, įdiekite atvirojo kodo prekyboje esantį "google-noto" šriftą naudodami šią komandą:



Pakeiskite šaltinio kode naudojamą šriftą, iš naujo paskelbkite ir įkelkite į serverį, o vykdymo rezultatas bus toks:



Galite pamatyti, kad galite sėkmingai pridėti kinišką vandens ženklą naudodami šį kodą:

Šaltinio kodo atsisiuntimas:

Turistai, jei norite pamatyti paslėptą šio įrašo turinį, prašomeAtsakyti


(Pabaiga)




Ankstesnis:.NET Core išleidžia vieno failo kelio problemą
Kitą:.NET/C# taisyklių variklio "RulesEngine" pamoka
 Savininkas| Publikuota: 2021-6-16 14:10:48 |
Publikuota: 2022-12-29 11:49:27 |
Galite pamatyti, kad galite sėkmingai pridėti kinišką vandens ženklą naudodami šį kodą:
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com