Como converter uma imagem em um BMP de 24 bits na linha de comando?

2

Estou escrevendo um script Bash para ARSS para facilitar o uso. O programa converte imagens em sons e vice-versa, mas só aceita imagens BMP de 24 bits, que só consegui produzir usando o GIMP até agora.

Estou procurando uma maneira de converter qualquer imagem em um arquivo BMP adequado para que o ARSS possa processá-la. Eu tentei o convert do ImageMagic, mas não conseguirei a profundidade de cor de 24 bt.

Aqui está meu script:

#!/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

Aqui está a saída:

$ ./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

Como você pode ver, tentei usar convert "$1" -depth 24 "$1.bmp" para obter uma imagem BMP de 24 bits, mas isso não funciona como eu esperava.

Para referência, recebo um arquivo adequado ao exportar com o GIMP:

E o ARSS processa esse arquivo BMP bem.

Eu não posso usar isso da linha de comando, no entanto, e usar a GUI do GIMP sempre desafia o propósito do que estou tentando alcançar. Eu vi que há uma maneira de usar o GIMP no modo sem cabeça, alimentando-o com comandos, mas não sei se preciso disso.

Talvez haja algo simples que eu não saiba?

    
por unfa 23.09.2017 / 16:37

1 resposta

5

De acordo com uma postagem no fórum do ImageMagick , usar -type truecolor pode ser o correto maneira de forçar a imagem para 24 bits:

convert "$1" -type truecolor "$1.bmp"
    
por 23.09.2017 / 16:46