Maison  >  Article  >  développement back-end  >  Pourquoi les commandes ImageMagick échouent-elles dans Powershell ?

Pourquoi les commandes ImageMagick échouent-elles dans Powershell ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 02:43:02255parcourir

Why are ImageMagick commands failing in Powershell?

Les commandes ImageMagick ne s'exécutent pas dans Powershell

Bien que les commandes ImageMagick puissent être exécutées de manière transparente dans les fenêtres Windows CMD, elles rencontrent des erreurs lorsqu'elles sont exécutées dans Powershell. Bien que l'on s'assure qu'ImageMagick est ajouté aux variables d'environnement, les commandes échouent. Ce problème peut être attribué aux différentes exigences de syntaxe de Powershell.

Interprétation de la syntaxe de Powershell

Powershell interprète divers caractères et symboles ImageMagick différemment des autres shells. Ceux-ci incluent :

  • Parenthèses : Alors qu'ImageMagick utilise des parenthèses pour traiter des images spécifiques, Powershell les interprète comme des sous-processus. Pour éviter cela, ils doivent être échappés avec un backtick avant et après, par exemple {parenthèses ici}.
  • Fill Color : Powershell interprète -fill #FFFFFF80 comme une applet de commande inexistante, tandis qu'ImageMagick le comprend comme une couleur hexadécimale. Pour éviter cette erreur, placez la couleur de remplissage entre guillemets, par exemple -fill "#FFFFFF80".

Commande simple vs. Commande complexe

De plus, Powershell peut exécuter des commandes simples (par exemple, magick nature.jpg -fill yellow nature.png) sans problème, mais il a du mal avec les commandes complexes (par exemple, celles contenant des parenthèses, des couleurs hexadécimales ou des directives magiques).

Solution de contournement

Pour exécuter des commandes ImageMagick complexes dans Powershell, envisagez d'utiliser la solution de contournement suivante :

  1. Créez un fichier texte (.mgk) avec les commandes ImageMagick souhaitées, par ex. :
-size 640x480 xc:#ffff00
( foreground.png -resize 50% )
-gravity center -composite -write result.png
  1. Exécutez les commandes en utilisant :
magick -script script.mgk

Cette méthode évite l'interprétation par Powershell des symboles ImageMagick et garantit une exécution réussie des commandes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn