Запись 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
предполагает, что в настоящее время он не предназначен для использования.