Spec-Zone .ru
спецификации, руководства, описания, API
|
Мы уже знаем, как загрузить существующее изображение, которое создавалось и сохранено в Вашей системе или в любом сетевом расположении. Но, вероятно, требуется также создать новое изображение как буфер пиксельных данных.
В этом случае можно создать a BufferedImage
возразите вручную, используя трех конструкторов этого class:
BufferedImage
из одного из предопределенных типов изображения.BufferedImage
из одного из предопределенных типов изображения: TYPE_BYTE_BINARY
или TYPE_BYTE_INDEXED
.new BufferedImage(colorModel, raster, premultiplied, properties)
- создает новое BufferedImage
с указанным ColorModel
и Raster
.С другой стороны мы можем использовать методы Component
class. Эти методы могут проанализировать разрешение дисплея для данного Component
или GraphicsConfiguration
и создайте изображение соответствующего типа.
Component.createImage(width, height)
GraphicsConfiguration.createCompatibleImage(width, height)
GraphicsConfiguration.createCompatibleImage(width, height, transparency)
GraphicsConfiguration возвращает объект типа BufferedImage, но Компонент возвращает объект Image type
, если Вы нуждаетесь в объекте BufferedImage вместо этого тогда, можно выполнить instanceof
и бросок к a BufferedImage
в Вашем коде.
Как был уже упомянут в предыдущих уроках, мы можем представить изображения не только на экране. Сами изображения можно рассмотреть как поверхность рисунка. Можно использовать a createGraphics()
метод BufferedImage
class с этой целью:
... BufferedImage off_Image = new BufferedImage(100, 50, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = off_Image.createGraphics();
Другое интересное использование внеэкранных изображений является буферизацией automaticdouble. Эта функция позволяет избегать мерцания в изображениях с анимацией при рисовании изображения к заднему буферу и затем копируя тот буфер на экран вместо того, чтобы тянуть непосредственно на экран.
Java 2D™ также предоставляет доступ к аппаратному ускорению для внеэкранных изображений, которые могут обеспечить лучшую производительность рендеринга к и копирования с этих изображений. Можно извлечь пользу из этой функциональности при использовании следующих методов Image
class:
getCapabilities
метод позволяет Вам определять, ускоряется ли изображение в настоящий момент.setAccelerationPriority
метод позволяет Вам устанавливать подсказку о том, как важное ускорение для изображения.getAccelerationPriority
метод получает подсказку об ускоряющей важности.