我正在编写一个包装器 Bash 脚本辅助系统使其更易于使用。该程序将图像转换为声音,反之亦然,但它只接受 24 位 BMP 图像,到目前为止我只能使用 GIMP 生成这些图像。
我正在寻找一种方法将任何给定图像转换为合适的 BMP 文件,以便 ARSS 可以处理它。我尝试了 ImageMagic's convert
,但我无法获得 24-bt 颜色深度。
这是我的脚本:
#!/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 提供命令来在无头模式下使用 GIMP,但我不知道我是否需要它。
也许有一些简单的事情我不知道?
答案1
根据ImageMagick 论坛帖子,使用-type truecolor
可能是强制图像为 24 位的正确方法:
convert "$1" -type truecolor "$1.bmp"