Как лучше всего сериализовать java.awt.Image?

У меня есть объект Serializable, который должен содержать java.awt.Image в качестве своего члена. Как мне его сериализовать? (Отредактировано из не очень ясной первой версии, извините.)

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
12
0
13 294
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ничего из того, что я знаю. Я считаю, что вам нужно написать свой собственный сериализатор, чтобы он в основном сохранял значения ширины, высоты и пикселей ... Или записывать его в поток как PNG или что-то в этом роде

Ответ принят как подходящий

ImageIcon реализует Serializable, и его можно использовать для обертывания класса Image

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/ImageIcon.html

Просто имейте в виду: Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing.

McDowell 26.09.2008 19:06

я пробовал .... но получил ошибку .... вложенное исключение: java.io.EOFException см. вопрос, который я опубликовал ... stackoverflow.com/questions/11117626/…

Arjun K P 20.06.2012 15:03

Хотя это решение работает, оно создает очень большие сериализованные файлы. Чтобы решить эту проблему, необходимо сохранить файлы на диске нетронутыми и сохранить ссылку, скопировав изображение в место, относящееся к сериализованному файлу.

glend 03.06.2016 17:08

javax.swing.ImageIcon, как часть Swing, не гарантирует совместимость сериализованной формы между версиями. Однако вы можете схитрить и посмотреть на его код readObject и writeObject - найти ширину и высоту, захватить пиксели с помощью PixelGrabber. Я не совсем уверен, что правильно охватывает цветовую модель. Очевидная альтернатива - написать реальный формат изображения с помощью javax.imageio.

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