Requisitos: Ahora que .NET Core puede ser multiplataforma, publica el proyecto en el entorno Linux para que se ejecute, e incluirá algo de procesamiento de imágenes, como: generar códigos de verificación, hacer marcas de agua con imágenes, etc.
Primero, crea un proyecto de consola .NET Core 3.1 (el código fuente se adjunta al final del artículo) y es necesario instalar el procesamiento de imágenes:System.Drawing.Common
Utiliza el paquete nuget para gestionar la instalación con el siguiente comando:
Publica el proyecto como un solo archivo, la plataforma objetivo es: linux-x64, y la configuración de publicación es la siguiente:
<?xml versión="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>Lanzamiento</Configuration> <Platform>Cualquier CPU</Platform> <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir> <PublishProtocol>Sistema de archivos</PublishProtocol> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifier>Linux-x64</RuntimeIdentifier> <SelfContained>Cierto</SelfContained> <PublishSingleFile>Cierto</PublishSingleFile> <PublishTrimmed>Falso</PublishTrimmed> </PropertyGroup> </Project> (El único archivo ejecutable generado contiene en realidad el entorno necesario para la ejecución del programa, y no es necesario que el ordenador objetivo instale el SDK, y la desventaja es que el tamaño del archivo será muy grande.)
Sube el archivo publicado al servidor de CentOS, yConcede permisos de ejecución al archivo! De lo contrario, el programa no se ejecutará con el siguiente comando:
Luego ejecuta el archivo, y los problemas que puedes encontrar son los siguientes:
Si el error es el siguiente:
Excepción no gestionada. System.TypeInitializationException: El inicializador de tipo para 'Gdip' lanzó una excepción. ---> System.DllNotFoundException: No se puede cargar la biblioteca compartida 'libgdiplus' ni ninguna de sus dependencias. Para ayudar a diagnosticar problemas de carga, considera establecer la variable de entorno LD_DEBUG: liblibgdiplus: cannot open shared object file: No hay tal archivo o directorio en System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) en System.Drawing.SafeNativeMethods.Gdip.. cctor() --- Fin de la traza de la pila de excepciones interna --- en System.Drawing.SafeNativeMethods.Gdip.GdipCargaImagenFromFile(Nombre de archivo en cadena, IntPtr& image) en System.Drawing.Image.FromFile (Nombre de archivo en cadena, booleano useEmbeddedColorManagement) en System.Drawing.Image.FromFile (Nombre de archivo en cadena) en ImageWatermark.Program.Main(String[] args) Abortado Usa el siguiente comandoInstall libgdiplus-devel:
Intenta volver a ejecutar, y puedes ver que la ejecución ha tenido éxito, como se muestra en la siguiente imagen:
Ve la imagen con marca de agua y abre el archivo "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", el efecto es el siguiente:
Descubrimiento,Los caracteres chinos están distorsionados, no hay problema con los caracteres en inglés, comprueba la fuente instalada por el sistema, el comando es el siguiente:
Si el comando no está disponible en el sistema, primero debemos instalar el paquete de software correspondiente, el comando es el siguiente:
Solución, instala la fuente de código abierto de Google-noto disponible comercialmente con el siguiente comando:
Modifica la fuente utilizada en el código fuente, vuelve a publicarla y súbela al servidor, y el resultado de ejecución es el siguiente:
Puedes ver que puedes añadir con éxito una marca de agua china con el siguiente código:
Descarga del código fuente:
Turistas, si queréis ver el contenido oculto de esta publicación, por favor Respuesta
(Fin)
|