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:
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šome Atsakyti
(Pabaiga)
|