在尝试使用 ImageMagick 命令时,用户在 Powershell 窗口中执行它们时遇到了挑战。这些命令在 cmd 窗口中无缝运行。尝试通过在括号前添加反斜杠来解决该问题也没有成功。调查显示,magick指令确实包含在环境变量中。
尽管无法在Powershell中运行复杂的命令,但简单的命令执行没有问题。这表明问题出在复杂的命令上。
ImageMagick 提供了大量的选项和功能,因此在使用时需要仔细注意引用和转义。在各种环境中执行命令,包括:
Bash :
magick IMAGE1.PNG \ \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \ -composite -transparent 'hsl(40,50,60)' result.png
Windows 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
为了避免因特定于环境的语法限制而引起的潜在问题,独立于平台的方法涉及利用脚本。命令可以包含在扩展名为“.mgk”的文件中,ImageMagick 可以直接执行它,绕过 shell 解释和引用问题:
script.mgk:
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
调用:
magick -script script.mgk
通过采用此技术,shell 对脚本中使用的符号和字符保持不可知,从而确保跨不同环境的无缝执行。
以上是为什么我无法在 Powershell 中运行复杂的 ImageMagick 命令,但它们可以在 CMD 中运行?的详细内容。更多信息请关注PHP中文网其他相关文章!