问题:
用于添加图像的 ImageMagick 命令在 CMD 中成功运行时,图像的水印无法在 PowerShell 中执行。
原因:
该命令使用可以被不同 shell 不同解释的特殊字符(例如、bash、CMD32、PowerShell)。
解决方案:
引用和 Shell 语法:
Bash: 用反斜杠转义括号,并将哈希值放在引号内。
CMD32: 使用脱字符号进行转义并将百分号加倍。
Powershell: 用反引号转义括号。
转义技巧:
Shell | Escape Character | Line Continuation |
---|---|---|
Bash | Backslash | Backslash |
CMD32 | Caret ^ | Caret ^ |
PowerShell | Backtick ` | Backtick ` |
示例命令:
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
十字-平台解决方案:
为了避免 shell 特定的引用问题,请使用 ImageMagick 的“-script”选项从文件中读取命令:
<code class="sh">magick -script script.mgk</code>
脚本文件 (脚本.mgk):
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
以上是为什么 ImageMagick 命令在 CMD 中有效但在 PowerShell 中失败?的详细内容。更多信息请关注PHP中文网其他相关文章!