unf*_*nfa 2 command-line imagemagick image-manipulation conversion gimp
我正在为ARSS编写包装器 Bash 脚本以使其更易于使用。该程序将图像转换为声音,反之亦然,但它只接受 24 位 BMP 图像,到目前为止我只能使用 GIMP 生成。
我正在寻找一种方法将任何给定的图像转换为合适的 BMP 文件,以便 ARSS 可以处理它。我尝试了 ImageMagic 的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
Run Code Online (Sandbox Code Playgroud)
这是输出:
$ ./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
Run Code Online (Sandbox Code Playgroud)
如您所见,我尝试使用convert "$1" -depth 24 "$1.bmp"
来获取 24 位 BMP 图像,但这并没有像我预期的那样工作。
作为参考,我在使用 GIMP 导出时得到了一个正确的文件:
ARSS 可以很好地处理这样的 BMP 文件。
但是,我无法从命令行使用它,并且每次使用 GIMP 的 GUI 都违背了我想要实现的目的。我看到有一种方法可以通过提供命令来在无头模式下使用 GIMP,但我不知道我是否需要它。
也许只是一些简单的事情我不知道?
根据ImageMagick 论坛帖子,使用-type truecolor
可能是将图像强制为 24 位的正确方法:
convert "$1" -type truecolor "$1.bmp"
Run Code Online (Sandbox Code Playgroud)