Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 50580|Répondre: 2

[.NET Core] Problèmes de filigranage .NET Core sur les images Linux

[Copié le lien]
Publié le 28-03-2021 à 14:46:15 | | | |
Exigences : Maintenant que .NET Core peut être multiplateforme, publiez le projet dans l’environnement Linux pour l’exécuter, et le projet inclura certains traitements d’images, tels que : générer des codes de vérification, faire du filigrane d’images, etc.

Tout d’abord, créez un projet console .NET Core 3.1 (le code source est joint à la fin de l’article), et le traitement d’image doit être installé :System.Drawing.Common

Utilisez le package nuget pour gérer l’installation avec la commande suivante :


Publiez le projet en un seul fichier, la plateforme cible est : linux-x64, et la configuration de publication est la suivante :

< ?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>Sortie</Configuration>
    <Platform>N’importe quel processeur</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Système de fichiers</PublishProtocol>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Vrai</SelfContained>
    <PublishSingleFile>C’est vrai</PublishSingleFile>
    <PublishTrimmed>Faux</PublishTrimmed>
  </PropertyGroup>
</Project>
Le fichier exécutable unique généré contient en réalité l’environnement nécessaire à l’exécution du programme, et il n’est pas nécessaire que l’ordinateur cible installe le SDK, et l’inconvénient est que la taille du fichier devient très grande.

Téléverser le fichier publié sur le serveur CentOS, etAccordez les permissions d’exécution du fichier! Sinon, le programme ne s’exécutera pas avec la commande suivante :


Ensuite, exécutez le fichier, et les problèmes que vous pourriez rencontrer sont les suivants :

.NET Core génère un problème de chemin de fichier unique
https://www.itsvse.com/thread-9604-1-1.html

Erreur Linux .NET Core : Impossible de trouver un package ICU valide installé...
https://www.itsvse.com/thread-9603-1-1.html

Erreur .NET Core dans Linux Application Package de traitement défaillant
https://www.itsvse.com/thread-9602-1-1.html
Si l’erreur est la suivante :

Exception non traitée. System.TypeInitializationException : L’initialiseur de type pour 'Gdip' a lancé une exception.
---> System.DllNotFoundException : Impossible de charger la bibliothèque partagée 'libgdiplus' ou l’une de ses dépendances. Pour aider à diagnostiquer les problèmes de chargement, envisagez de définir la variable d’environnement LD_DEBUG : liblibgdiplus : impossible d’ouvrir fichier objet partagé : Aucun fichier ou répertoire de ce type
   sur System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   sur System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Fin de la trace de pile d’exception interne ---
   sur System.Drawing.SafeNativeMethods.Gdip.GdipChargeImageFromFile(String filename, IntPtr& image)
   sur System.Drawing.Image.FromFile (Nom de fichier de chaîne, booléen useEmbeddedColorManagement)
   sur System.Drawing.Image.FromFile (Nom du fichier de chaîne)
   sur ImageWatermark.Program.Main(String[] args)
Avorté
Utilisez la commande suivanteInstall libgdiplus-devel


Essayez de réexécuter, et vous constaterez que l’exécution a réussi, comme montré sur l’image suivante :



Voyez l’image filigranée et ouvrez le fichier « 57f2305a-6850-41af-80ab-8d2bf89569e5.jpg », l’effet est le suivant :



Découverte,Les caractères chinois sont brouillés, il n’y a pas de problème avec les caractères anglais, vérifiez la police installée par le système, la commande est la suivante :



Si la commande n’est pas disponible dans le système, nous devons d’abord installer le logiciel concerné, la commande est la suivante :

Solution : installer la police Google-noto librement disponible dans le commerce avec la commande suivante :



Modifiez la police utilisée dans le code source, republiez et téléchargez sur le serveur, et le résultat d’exécution est le suivant :



Vous pouvez voir que vous pouvez ajouter avec succès un filigrane chinois avec le code suivant :

Téléchargement du code source :

Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaîtRépondre


(Fin)




Précédent:.NET Core génère un problème de chemin de fichier unique
Prochain:.NET/C# Tutoriel du moteur de règles du moteur de règles
 Propriétaire| Publié le 16-06-2021 à 14:10:48 |
Publié le 29-12-2022 à 11:49:27 |
Vous pouvez voir que vous pouvez ajouter avec succès un filigrane chinois avec le code suivant :
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com