Любой способ легко показать очень большое изображение в Java-апплете (используя меньшие части)? - PullRequest
0 голосов
/ 03 февраля 2010

Мне нужна функциональность для отображения больших изображений в Java-апплете без увеличения пространства кучи по умолчанию. Я получаю исключение «Недостаточно памяти» при чтении большого изображения с помощью ImageIO.read () в BufferedImage (что должно было произойти).

Чтобы решить эту проблему, первое, что приходит на ум, - это разделить большое изображение на меньшие части.

Мой вопрос:

Есть ли у кого-нибудь советы о том, в каком направлении следует реализовать эту функцию (включая отображение правильной части при прокрутке изображения)? Есть ли в Java что-нибудь встроенное для поддержки этого? Есть примеры?

1 Ответ

1 голос
/ 03 февраля 2010

Вы должны работать с частями. Самое простое - иметь маленькие провайдеры сервера, которые вы можете запросить по мере необходимости.

Если нет, то вы должны сделать это самостоятельно в апплете. Загрузите изображение - разбейте его на фрагменты, и каждая плитка перекодирует себя в поток байтов, например, в формате jpeg. Прикрепите визуализированную плитку как мягкую ссылку, чтобы она была собрана как можно позже. Если визуализированный тайл был скопирован, то декодируйте jpeg bytestream.

Если у вас есть ЛОТ, то даже подумайте о сериализованных тайлах в локальном хранилище.

...