Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 50580|Atbildi: 2

[.NET kodols] .NET Core ūdenszīmes problēmas Linux attēlos

[Kopēt saiti]
Publicēts 2021-3-28 14:46:15 | | | |
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:

.NET Core izlaiž viena faila ceļa problēmu
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux kļūda: nevarēja atrast instalētu derīgu ICU pakotni...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core kļūda Linux kļūmju apstrādes lietojumprogrammu komplektā
https://www.itsvse.com/thread-9602-1-1.html
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ūdzuAtbildi


(Beigas)




Iepriekšējo:.NET Core izlaiž viena faila ceļa problēmu
Nākamo:.NET/C# noteikumu dzinēja RulesEngine apmācība
 Saimnieks| Publicēts 2021-6-16 14:10:48 |
Publicēts 2022-12-29 11:49:27 |
Jūs varat redzēt, ka varat veiksmīgi pievienot ķīniešu ūdenszīmi ar šādu kodu:
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com