Escrevendo arquivos BMP com databuffer.type_float ou databuffer.type_double em java
Pergunta
Eu tive um problema em trabalhar com as classes de imagem em Java.
Estou criando uma imagem em buffer com Databuffer.type_double. Tudo isso funciona bem na memória (eu acho). Mas o problema começa quando tento escrevê -lo usando imageio.write.
Inicialmente, eu não estava recebendo exceção e, em vez disso, estava apenas recebendo um arquivo de saída vazio para meus problemas.
Depois de um pouco de cutucada no código, descobri que o escritor do BMP não suporta a gravação do tipo de arquivos tipo_double.
From: BMPImageWriterSpi.canEncodeImage:
if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
return false;
Então, minha pergunta é: alguém tem uma maneira de escrever esse tipo de imagens no disco? Qualquer documentação ou tutorial ou link seria útil.
Obrigado, Basil Dsouza
Solução
Como o formato BMP não usa representações de ponto flutuante, em um nível alto, não faz sentido usar dados de ponto flutuante para representar uma imagem que você escreverá como BMP. Você realmente precisa fazer isso? Por que não ints?
o javadoc for DataBuffer.TYPE_DOUBLE
sugere que atualmente não se destina ao uso.