Запись файлов BMP с помощью DataBuffer.TYPE_FLOAT или DataBuffer.TYPE_DOUBLE в Java
Вопрос
У меня возникла проблема при работе с классами изображений в Java.
Я создаю буферизованное изображение с помощью DataBuffer.TYPE_DOUBLE.Все это прекрасно работает в памяти (я думаю).Но проблема начинается, когда я пытаюсь написать его с помощью ImageIO.write.
Первоначально я вообще не получал никаких исключений, а вместо этого получал только пустой выходной файл для своих проблем.
Немного покопавшись в коде, я обнаружил, что программа записи bmp не поддерживает запись файлов типа type_double.
From: BMPImageWriterSpi.canEncodeImage:
if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
return false;
Итак, мой вопрос: есть ли у кого-нибудь способ записать такие изображения на диск?любая документация, руководство или ссылка будут полезны.
Спасибо, базилик дсуза
Решение
Поскольку формат BMP не использует никаких представлений с плавающей запятой, на высоком уровне не имеет смысла использовать данные с плавающей запятой для представления изображения, которое вы будете писать в формате BMP.Вам действительно нужно это сделать?Почему не целые?
А javadoc для DataBuffer.TYPE_DOUBLE
предполагает, что в настоящее время он не предназначен для использования.