Как преобразовать изображение в 24-битный BMP в командной строке?

Я пишу скрипт Bash для ARSS, чтобы упростить его использование. Программа преобразует изображения в звуки и наоборот, но принимает только 24-битные изображения BMP, которые я смог получить только с помощью GIMP.

Я ищу способ конвертировать любое заданное изображение в подходящий файл BMP, чтобы ARSS мог его обработать. Я попробовал convert ImageMagic, но я не смог получить глубину цвета 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.

Однако я не могу использовать это из командной строки, и использование GUI GIMP каждый раз бросает вызов цели того, чего я пытаюсь достичь. Я видел, что есть способ использовать GIMP в режиме безголового, подавая его команды, но я не знаю, нужна ли мне это.

Может быть, есть что-то простое, чего я не знаю?

Согласно сообщению форума ImageMagick , использование -type truecolor может быть правильным способом заставить изображение до 24 бит:

 convert "$1" -type truecolor "$1.bmp"