Problème :
Une commande ImageMagick pour ajouter un Le filigrane sur une image ne parvient pas à s'exécuter dans PowerShell lors de son exécution réussie dans CMD.
Cause :
La commande utilise des caractères spéciaux qui peuvent être interprétés différemment par différents shells (par ex. , bash, CMD32, PowerShell).
Solution :
Citation et syntaxe Shell :
Bash : Échappez les parenthèses avec des barres obliques inverses et placez les hachages entre guillemets.
CMD32 : Utilisez des carets pour échapper et doublez les signes de pourcentage.
Powershell : Échapper aux parenthèses avec des guillemets.
Techniques d'échappement :
Shell | Escape Character | Line Continuation |
---|---|---|
Bash | Backslash | Backslash |
CMD32 | Caret ^ | Caret ^ |
PowerShell | Backtick ` | Backtick ` |
Exemples de commandes :
Bash :
<code class="sh">magick IMAGE1.PNG \ \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \ -composite -transparent 'hsl(40,50,60)' result.png</code>
CMD32 :
magick IMAGE1.PNG ^ ( IMAGE2.PNG -resize 50%% -fill "#ff0000" -colorize 100% ) ^ -composite -transparent "hsl(40,50,60)" result.png
Powershell :
magick IMAGE1.PNG ` `( IMAGE2.PNG -resize 50% -fill "#ff0000" -colorize 100% `) ` -composite -transparent "hsl(40,50,60)" result.png
Cross -Solution de plate-forme :
Pour éviter les problèmes de citation spécifiques au shell, utilisez l'option "-script" d'ImageMagick pour lire les commandes à partir d'un fichier :
<code class="sh">magick -script script.mgk</code>
Fichier de script ( script.mgk):
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
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!