Prasības: Tagad, kad .NET Core var būt starpplatforma, publicējiet projektu Linux vidē, lai to palaistu, un projekts ietvers attēlu apstrādi, piemēram: verifikācijas kodu ģenerēšana, ūdenszīmju attēli utt.
Pirmkārt, izveidojiet .NET Core 3.1 konsoles projektu (avota kods ir pievienots raksta beigās), un ir jāinstalē attēlu apstrāde:Sistēma.Zīmējums.Kopīgs
Izmantojiet nuget pakotni, lai pārvaldītu instalāciju ar šādu komandu:
Publicējiet projektu kā vienu failu, mērķa platforma ir: linux-x64, un publicēšanas konfigurācija ir šāda:
<?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>Izlaidums</Configuration> <Platform>Jebkurš procesors</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Failu sistēma</PublishProtocol> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifier>Linux-x64</RuntimeIdentifier> <SelfContained>patiess</SelfContained> <PublishSingleFile>Patiess</PublishSingleFile> <PublishTrimmed>Nepatiess</PublishTrimmed> </PropertyGroup> </Project> (Ģenerētais viens izpildāmais fails faktiski satur vidi, kas nepieciešama programmas izpildei, un mērķa datoram nav nepieciešams instalēt SDK, un trūkums ir tas, ka faila lielums kļūs ļoti liels.)
Augšupielādējiet publicēto failu CentOS serverī unFaila izpildes atļauju piešķiršana! Pretējā gadījumā programma nedarbosies ar šādu komandu:
Pēc tam izpildiet failu, un problēmas, kas var rasties, ir šādas:
Ja kļūda ir šāda:
Neapstrādāts izņēmums. System.TypeInitializationException: Gdip tipa inicializators radīja izņēmumu. ---> System.DllNotFoundException: Nevar ielādēt koplietojamo bibliotēku "libgdiplus" vai kādu no tās atkarībām. Lai palīdzētu diagnosticēt ielādes problēmas, apsveriet iespēju iestatīt LD_DEBUG vides mainīgo: liblibgdiplus: nevar atvērt koplietojamā objekta failu: nav šāda faila vai direktorija vietnē System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& marķieris, StartupInput& input, StartupOutput& output) vietnē System.Drawing.SafeNativeMethods.Gdip.. cctor() --- Iekšējās izņēmumu steka izsekošanas --- beigas vietnē System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Virknes faila nosaukums, IntPtr& attēls) vietnē System.Drawing.Image.FromFile(Virknes faila nosaukums, Būla lietojumsEmbeddedColorManagement) vietnē System.Drawing.Image.FromFile(Virknes faila nosaukums) pie ImageWatermark.Program.Main(String[] argumenti) Atcelts Izmantojiet šādu komanduInstalējiet libgdiplus-devel:
Mēģiniet izpildīt atkārtoti, un jūs varat konstatēt, ka izpilde ir veiksmīga, kā parādīts šajā attēlā:
Apskatiet ūdenszīmes attēlu un atveriet failu "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", efekts ir šāds:
Atklāšana,Ķīniešu rakstzīmes ir izkropļotas, nav problēmu ar angļu rakstzīmēm, pārbaudiet sistēmas instalēto fontu, komanda ir šāda:
Ja komanda sistēmā nav pieejama, vispirms jāinstalē attiecīgā programmatūras pakotne, komanda ir šāda:
Risinājums, instalējiet atvērtā koda komerciāli pieejamo google-noto fontu ar šādu komandu:
Modificējiet avota kodā izmantoto fontu, atkārtoti publicējiet un augšupielādējiet serverī, un izpildes rezultāts ir šāds:
Jūs varat redzēt, ka varat veiksmīgi pievienot ķīniešu ūdenszīmi ar šādu kodu:
Avota koda lejupielāde:
Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzu Atbildi
(Beigas)
|