Java - обрабатывать изображение во время чтения - PullRequest
1 голос
/ 23 июня 2011

Я разрабатываю серверное приложение, которое берет изображение от пользователя, обрабатывает его и отправляет обратно по сети. Поскольку сетевое соединение может быть довольно медленным, я хотел бы ускорить процесс, начав обрабатывать части изображения, пока оно еще отправляется по сети, и отправлять части обработанного изображения обратно клиенту, в то время как другие части все еще работают. обрабатывается.

Возможно ли это, предпочтительно используя классы javax.imageio?

РЕДАКТИРОВАТЬ: В основном меня интересует запись PNG файлов. Википедия говорит : « IDAT содержит изображение, которое может быть разделено на несколько фрагментов IDAT. Это немного увеличивает размер файла, но позволяет генерировать PNG в потоковом режиме. »

1 Ответ

2 голосов
/ 23 июня 2011

Это сильно зависит от кодировки изображения. Некоторые форматы изображений требуют, чтобы весь файл был доступен, прежде чем вы сможете его декодировать. Другие - как GIF и некоторые PNG-кодировки (насколько я помню) декодируют в отдельные блоки, которые затем могут быть обработаны.

Скорее всего, вам нужно написать собственные декодеры, что может быть довольно трудоемким, если вы не очень хорошо знакомы с форматами и вам необходимо поддерживать несколько.

Я думаю, что вы, возможно, должны вместо этого работать на панели загрузки?

...