Запись BMP-файлов с помощью DataBuffer.TYPE_FLOAT или DataBuffer.TYPE_DOUBLE в Java

У меня была проблема при работе с классами изображений в Java.

Я создаю буферизованное изображение с помощью DataBuffer.TYPE_DOUBLE. Это все прекрасно работает в памяти (я думаю). Но проблема начинается, когда я пытаюсь написать это, используя ImageIO.write.

Первоначально я вообще не получал никаких исключений, а вместо этого получал только пустой выходной файл для моих проблем...

Немного покопавшись в коде, я обнаружил, что bmp writer не поддерживает запись файлов типа type_double.

From: BMPImageWriterSpi.canEncodeImage:
        if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
        return false;

Итак, мой вопрос: есть ли у кого-нибудь способ записать такие образы на диск? любая документация или учебник, или ссылка будет полезной.

Спасибо, Василий Дсуза

1 ответ

Решение

Поскольку в формате BMP не используются представления с плавающей точкой, на высоком уровне не имеет смысла использовать данные с плавающей точкой для представления изображения, которое вы будете записывать в виде BMP. Вам действительно нужно это сделать? Почему не ценные?

Javadoc дляDataBuffer.TYPE_DOUBLE предполагает, что в настоящее время он не предназначен для использования.

Другие вопросы по тегам