Чтение / запись файлов изображений по линиям или пикселям с использованием Java - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть конкретный объект с данными изображения.И я хочу читать / писать изображения (в форматах BMP, JPEG и PNG) для этого объекта.

Конечно, я могу читать / записывать изображения в / из BufferedImage, а затем копировать / вставлять пиксели в / из моего объекта. Но я хочу сделать это быстрее без промежуточных объектов!

Как я могу выполнить это поверх стандартной библиотеки Java или выбросить другую библиотеку Java?

PS:
Я знаю pngj библиотека, которая позволяет читать PNG изображения по строкам.Может быть, вы знаете одинаковые библиотеки для BMP, JPEG (или для всех из них: BMP, JPEG, PNG)?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Почему у вас просто нет BufferedImage в вашем Object? BufferedImage не все так плохо. В противном случае вам нужно будет использовать что-то вроде BufferedImage, чтобы преобразовать файл изображения в пиксели, а затем прочитать BufferedImage во что-то вроде массива пикселей int[], но для него все еще требуется BufferedImage в середине, и это замедлит процесс, добавив дополнительный цикл для чтения и сохранения пикселей.

Есть ли причина, по которой BufferedImage не подходит для ваших целей?

0 голосов
/ 03 апреля 2012

Если вы хотите выполнить все чтение самостоятельно, вы можете просто открыть файл с потоком и прочитать его в массив, но вам нужно будет пройтись по всей структуре файла (заголовки и т. Д.). .) если вы работаете со сжатыми форматами, вам придется работать и над этим.

Лучше всего использовать imageio для загрузки / записи ваших файлов, и я не верю, что при чтении / записи ваших изображений возникают большие накладные расходы. Также, если вы ожидаете выполнить большую работу с изображениями, знайте, что BufferedImages может быть аппаратно ускорен, что значительно улучшит производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...