Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 50580|Відповідь: 2

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

[Копіювати посилання]
Опубліковано 2021-3-28 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& token, StartupInput&input, StartupOutput&Output)
   на System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Кінець внутрішнього стеку виключень ---
   на System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile (ім'я файлу рядка, 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#
 Орендодавець| Опубліковано 2021-6-16 14:10:48 |
Опубліковано 2022-12-29 11:49:27 |
Ви можете побачити, що можна успішно додати китайський водяний знак за допомогою наступного коду:
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com