Я работаю над программой 2D 2D-рендеринга (работает на 1.6.0_11), которая использует внешние изображения для его отображения пользовательского интерфейса. Эти большие изображения содержат одновременно несколько графических элементов графического интерфейса, которые я извлекаю теперь с помощью BufferedImage.getSubimage(). При средней настольной системе (с или без включения DirectX/OpenGL ускорения), мои вопросы:Производительность getSubimage BufferedImage
- getSubimage() представляет собой память эффективного вызова, поскольку он разделяет базовые данные изображения, но это влияет на отображение скорость этих вспомогательных изображений с помощью Graphics2D.drawImage()?
- Если изображения используют режим цветовой палитры 8 бит на пиксель, каково было бы увеличение/уменьшение использования режима RGBA (например, 4-кратная память) или использование цветовой модели палитры (например, время преобразования)?
Получается, это немного серая область. Если конвейер DirectX не используется, извлечение субимажей каждый раз занимает немного больше времени, чем наличие отдельного изображения этого изображения. Если изображение является плиткой, для которой требуется специальная система координат, разница заметно. Имея DirectX и современную графическую карту, BufferedImage становится управляемым изображением - живет в видеокамере и использует поддержку аппаратного обеспечения карт. В этом случае нет существенной разницы между суб и не-суб изображениями. – akarnokd