Command-Line
如何在命令行中將圖像轉換為 24 位 BMP?
我正在為ARSS編寫一個包裝 Bash 腳本以使其更易於使用。該程序將圖像轉換為聲音,反之亦然,但它只接受 24 位 BMP 圖像,目前我只能使用 GIMP 生成。
我正在尋找一種將任何給定圖像轉換為合適的 BMP 文件的方法,以便 ARSS 可以處理它。我嘗試了 ImageMagic 的
convert
,但我無法獲得 24 位色深。這是我的腳本:
#!/bin/bash # where is ARSS binary? ARSS="/unfa/Applications/ARSS/arss-0.2.3-linux-binary/arss" convert "$1" -depth 24 "$1.bmp" $ARSS --quiet "$1.bmp" "$1.wav" --sample-rate 48000 --format-param 32 --sine --min-freq 20 --max-freq 20000 --pps 250
這是輸出:
$ ./warss.sh 01.png The Analysis & Resynthesis Sound Spectrograph 0.2.3 Input file : 01.png.bmp Output file : 01.png.wav Wrong BMP format, BMP images must be in 24-bit colour
如您所見,我嘗試使用
convert "$1" -depth 24 "$1.bmp"
來獲取 24 位 BMP 圖像,但這並沒有像我預期的那樣工作。作為參考,我在使用 GIMP 導出時得到了一個正確的文件:
ARSS 可以很好地處理這樣的 BMP 文件。
但是,我不能從命令行使用它,並且每次使用 GIMP 的 GUI 都違背了我想要實現的目的。我看到有一種方法可以通過輸入命令在無頭模式下使用 GIMP,但我什至不知道我是否需要它。
也許只是一些我不知道的簡單事情?
根據ImageMagick 論壇文章,使用
-type truecolor
可能是將圖像強制為 24 位的正確方法:convert "$1" -type truecolor "$1.bmp"