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

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

  •  22-09-2019
  •  | 
  •  

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top