Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 50580|Отговор: 2

[.NET Core] Проблеми с водния знак на .NET Core при Linux снимки

[Копирай линк]
Публикувано на 28.03.2021 14:46:15 | | | |
Изисквания: Сега, когато .NET Core може да бъде кросплатформен, публикувайте проекта в Linux средата, за да се изпълни, и проектът ще включва известна обработка на изображения, като: генериране на кодове за верификация, поставяне на водни знаци на изображения и др.

Първо, създайте конзолен проект за .NET Core 3.1 (изходният код е прикачен в края на статията) и трябва да се инсталира обработка на изображения:Система. Рисуване. Често

Използвайте nuget пакета, за да управлявате инсталацията със следната команда:


Публикувайте проекта като единен файл, целевата платформа е: linux-x64, а конфигурацията за публикуване е следната:

<?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>Издаване</Configuration>
    <Platform>Всеки процесор</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish</PublishDir>\
    <PublishProtocol>Файлова система</PublishProtocol>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-X64</RuntimeIdentifier>
    <SelfContained>Вярно</SelfContained> е
    <PublishSingleFile>Вярно</PublishSingleFile> е
    <PublishTrimmed>Невярно</PublishTrimmed>
  </PropertyGroup>
</Project>
Генерираният единичен изпълним файл всъщност съдържа средата, необходима за изпълнението на програмата, и няма нужда целевият компютър да инсталира SDK, а недостатъкът е, че размерът на файла става много голям.

Качете публикувания файл на CentOS сървъра, иДайте на файла разрешения за изпълнение! В противен случай програмата няма да се стартира със следната команда:


След това изпълнете файла и проблемите, с които може да се сблъскате, са следните:

.NET Core пуска проблем с пътя на един файл
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux грешка: Не можах да намеря валиден инсталиран ICU пакет...
https://www.itsvse.com/thread-9603-1-1.html

.NET Core грешка в Linux пакет приложения за обработка на повреди
https://www.itsvse.com/thread-9602-1-1.html
Ако грешката е следната:

Необработено изключение. System.TypeInitializationException: Инициализаторът на типове за 'Gdip' хвърли изключение.
---> System.DllNotFoundException: Не може да се зареди споделената библиотека 'libgdiplus' или някоя от нейните зависимости. За да помогнете при диагностициране на проблеми с зареждането, разгледайте задаването на променливата LD_DEBUG среда: liblibgdiplus: cannot open shared object file: Няма такъв файл или директория
   в System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& токен, StartupInput&Input, StartupOutput&Output)
   в System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Край на вътрешния стек ---
   в System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile (String filename, IntPtr& image)
   в System.Drawing.Image.FromFile (Име на файл на низ, булево използванеEmbeddedColorManagement)
   в System.Drawing.Image.FromFile(Име на файл на низ)
   в ImageWatermark.Program.Main(String[] args)
Прекратена
Използвайте следната командаInstall libgdiplus-devel


Опитайте да го изпълните отново и ще откриете, че изпълнението е успешно, както е показано на следното изображение:



Вижте изображението с воден знак и отворете файла "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", ефектът е следният:



Откритие,Китайски йероглифи са изкривени, няма проблем с английските знаци, провери шрифта, инсталиран от системата, командата е следната:



Ако командата не е налична в системата, първо трябва да инсталираме съответния софтуерен пакет, като командата е следната:

Решение: инсталирайте отворения комерсиално наличен шрифт google-noto със следната команда:



Променете шрифта, използван в изходния код, публикувайте го отново и качете на сървъра, и резултатът от изпълнението е следният:



Виждате, че можете успешно да добавите китайски воден знак със следния код:

Изтегляне на изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор


(Край)




Предишен:.NET Core пуска проблем с пътя на един файл
Следващ:Урок за .NET/C# Engine Правила
 Хазяин| Публикувано на 2021-6-16 14:10:48 |
Публикувано на 29.12.2022 11:49:27 |
Виждате, че можете успешно да добавите китайски воден знак със следния код:
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com