Производительность BufferedImage getSubimage - PullRequest
3 голосов
/ 01 февраля 2009

Я работаю над Java 2D программой рендеринга (работающей на 1.6.0_11), которая использует внешние изображения для рендеринга пользовательского интерфейса. Эти большие изображения содержат одновременно несколько графических элементов пользовательского интерфейса, которые я сейчас извлекаю с помощью BufferedImage.getSubimage (). Предполагая среднюю настольную систему (с нашей без включения ускорения DirectX / OpenGL), мои вопросы:

  • getSubimage () - это эффективный вызов памяти, так как он разделяет данные базового изображения, но влияет ли это на скорость рендеринга этих субизображений с помощью Graphics2D.drawImage ()?
  • Если изображения используют режим цветовой палитры 8 бит на пиксель, каков будет выигрыш / потеря при использовании режима RGBA (например, 4-кратная память) или использование цветовой модели палитры (например, время преобразования)?

1 Ответ

1 голос
/ 05 февраля 2009

Насколько я знаю, getSubimage(...) не должно оказывать существенного влияния на рендеринг.

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


С изображениями медленность можно разделить на две категории:

  • Дисковый ввод / вывод
  • Обработка данных

А дисковый ввод / вывод может быть самой медленной частью.

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

Мой опыт показывает, что JAI лучше выполняет только то, что действительно необходимо, чем стандартные библиотечные материалы.

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