Masalah:
Arahan ImageMagick untuk menambah tera air pada imej gagal dilaksanakan dalam PowerShell semasa berjalan dengan jayanya dalam CMD.
Punca:
Arahan menggunakan aksara khas yang boleh ditafsirkan secara berbeza oleh cangkerang yang berbeza (cth. , bash, CMD32, PowerShell).
Penyelesaian:
Sintaks Petikan dan Shell:
Bash: Escape kurungan dengan garis serong ke belakang dan letakkan cincang dalam petikan.
CMD32: Gunakan tanda tanda untuk melarikan diri dan menggandakan tanda peratus.
Powershell: Escape kurungan dengan backtick.
Teknik Melarikan Diri:
Shell | Escape Character | Line Continuation |
---|---|---|
Bash | Backslash | Backslash |
CMD32 | Caret ^ | Caret ^ |
PowerShell | Backtick ` | Backtick ` |
Contoh Perintah:
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
Palang -Penyelesaian Platform:
Untuk mengelakkan isu petikan khusus shell, gunakan pilihan "-script" ImageMagick untuk membaca arahan daripada fail:
<code class="sh">magick -script script.mgk</code>
Fail Skrip ( script.mgk):
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
Atas ialah kandungan terperinci Mengapa Perintah ImageMagick Berfungsi dalam CMD tetapi Gagal dalam PowerShell?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!