Escrevendo arquivos BMP com databuffer.type_float ou databuffer.type_double em java

StackOverflow https://stackoverflow.com/questions/2530831

  •  22-09-2019
  •  | 
  •  

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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top