Изисквания: Сега, когато .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 сървъра, иДайте на файла разрешения за изпълнение! В противен случай програмата няма да се стартира със следната команда:
След това изпълнете файла и проблемите, с които може да се сблъскате, са следните:
Ако грешката е следната:
Необработено изключение. 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 със следната команда:
Променете шрифта, използван в изходния код, публикувайте го отново и качете на сървъра, и резултатът от изпълнението е следният:
Виждате, че можете успешно да добавите китайски воден знак със следния код:
Изтегляне на изходния код:
Туристи, ако искате да видите скритото съдържание на този пост, моля Отговор
(Край)
|