首页  >  文章  >  后端开发  >  为什么 ImageMagick 命令在 CMD 中有效但在 PowerShell 中失败?

为什么 ImageMagick 命令在 CMD 中有效但在 PowerShell 中失败?

Barbara Streisand
Barbara Streisand原创
2024-10-26 08:58:02878浏览

Why Do ImageMagick Commands Work in CMD but Fail in PowerShell?

ImageMagick 命令不在 PowerShell 窗口中执行,而是在 CMD 窗口中运行

问题:

用于添加图像的 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 &quot;#ff0000&quot; -colorize 100% ) ^
  -composite -transparent &quot;hsl(40,50,60)&quot; result.png

Powershell:

magick IMAGE1.PNG `
   `( IMAGE2.PNG -resize 50% -fill &quot;#ff0000&quot; -colorize 100% `) `
  -composite -transparent &quot;hsl(40,50,60)&quot; 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn