Spec-Zone.ru › OpenJDK 8

Класс MemoryImageSource

  • java.lang.Object
    • java.awt.image.MemoryImageSource
Все реализованные интерфейсы:
ImageProducer

public class MemoryImageSource
extends Object
implements ImageProducer

Этот класс является реализацией интерфейса ImageProducer, который использует массив для генерации значений пикселей для изображения. Вот пример, который вычисляет изображение 100x100, представляющее плавный переход от черного к синему по оси X и от черного к красному по оси Y:

int w = 100;
      int h = 100;
      int pix[] = new int[w * h];
      int index = 0;
      for (int y = 0; y < h; y++) {
          int red = (y * 255) / (h - 1);
          for (int x = 0; x < w; x++) {
              int blue = (x * 255) / (w - 1);
              pix[index++] = (255 << 24) | (red << 16) | blue;
          }
      }
      Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
MemoryImageSource также способен управлять изображением в памяти, которое меняется со временем, что позволяет реализовать анимацию или пользовательское отображение. Вот пример, показывающий, как настроить источник анимации и сигнализировать о изменениях в данных (адаптировано из MemoryAnimationSourceDemo Гарта Дикки):
int pixels[];
      MemoryImageSource source;

      public void init() {
          int width = 50;
          int height = 50;
          int size = width * height;
          pixels = new int[size];

          int value = getBackground().getRGB();
          for (int i = 0; i < size; i++) {
              pixels[i] = value;
          }

          source = new MemoryImageSource(width, height, pixels, 0, width);
          source.setAnimated(true);
          image = createImage(source);
      }

      public void run() {
          Thread me = Thread.currentThread( );
          me.setPriority(Thread.MIN_PRIORITY);

          while (true) {
              try {
                  Thread.sleep(10);
              } catch( InterruptedException e ) {
                  return;
              }

              // Modify the values in the pixels array at (x, y, w, h)

              // Send the new data to the interested ImageConsumers
              source.newPixels(x, y, w, h);
          }
      }

См. также:
ImageProducer

Конструкторы

Конструктор и описание
MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off, int scan)

Создаёт объект ImageProducer, который использует массив байтов для генерации данных для объекта Image.

MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off, int scan, Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив байтов для генерации данных для объекта Image.

MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan)

Создаёт объект ImageProducer, который использует массив целых чисел для генерации данных для объекта Image.

MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan, Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив целых чисел для генерации данных для объекта Image.

MemoryImageSource(int w, int h, int[] pix, int off, int scan)

Создаёт объект ImageProducer, который использует массив целых чисел в стандартной цветовой модели RGB для генерации данных для объекта Image.

MemoryImageSource(int w, int h, int[] pix, int off, int scan, Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив целых чисел в стандартной цветовой модели RGB для генерации данных для объекта Image.

Методы

Модификатор и тип Метод и описание
void addConsumer(ImageConsumer ic)

Добавляет ImageConsumer в список потребителей, заинтересованных в данных для этого изображения.

boolean isConsumer(ImageConsumer ic)

Определяет, находится ли ImageConsumer в списке потребителей, которые в настоящее время заинтересованы в данных для этого изображения.

void newPixels()

Отправляет новый буфер пикселей всем ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения, и уведомляет их о завершении кадра анимации.

void newPixels(byte[] newpix, ColorModel newmodel, int offset, int scansize)

Меняет массив байтов для хранения пикселей этого изображения.

void newPixels(int[] newpix, ColorModel newmodel, int offset, int scansize)

Меняет массив целых чисел для хранения пикселей этого изображения.

void newPixels(int x, int y, int w, int h)

Отправляет прямоугольную область буфера пикселей всем ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения, и уведомляет их о завершении кадра анимации.

void newPixels(int x, int y, int w, int h, boolean framenotify)

Отправляет прямоугольную область буфера пикселей всем ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения.

void removeConsumer(ImageConsumer ic)

Удаляет ImageConsumer из списка потребителей, заинтересованных в данных для этого изображения.

void requestTopDownLeftRightResend(ImageConsumer ic)

Запрашивает, чтобы ImageConsumer получил данные изображения еще раз в порядке сверху вниз, слева направо.

void setAnimated(boolean animated)

Преобразует это изображение в памяти в анимацию с несколькими кадрами или статическое изображение с одним кадром в зависимости от параметра анимации.

void setFullBufferUpdates(boolean fullbuffers)

Устанавливает, должно ли обновляться это анимированное изображение в памяти всегда путем отправки всего буфера пикселей при каждом изменении.

void startProduction(ImageConsumer ic)

Добавляет ImageConsumer в список потребителей, заинтересованных в данных для этого изображения, и немедленно начинает передачу данных изображения через интерфейс ImageConsumer.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         byte[] pix,
                         int off,
                         int scan)

Создаёт объект ImageProducer, который использует массив байтов для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
cm - указанный ColorModel
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
См. также:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         byte[] pix,
                         int off,
                         int scan,
                         Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив байтов для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
cm - указанный ColorModel
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
props - список свойств, которые ImageProducer использует для обработки изображения
См. также:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         int[] pix,
                         int off,
                         int scan)

Создаёт объект ImageProducer, который использует массив целых чисел для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
cm - указанный ColorModel
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
См. также:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         int[] pix,
                         int off,
                         int scan,
                         Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив целых чисел для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
cm - указанный ColorModel
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
props - список свойств, которые ImageProducer использует для обработки изображения
См. также:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         int[] pix,
                         int off,
                         int scan)

Создаёт объект ImageProducer, который использует массив целых чисел в цветовом пространстве RGB по умолчанию для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
См. также:
Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         int[] pix,
                         int off,
                         int scan,
                         Hashtable<?,?> props)

Создаёт объект ImageProducer, который использует массив целых чисел в цветовом пространстве RGB по умолчанию для создания данных для объекта Image.

Параметры:
w - ширина прямоугольника пикселей
h - высота прямоугольника пикселей
pix - массив пикселей
off - смещение в массиве, где хранится первый пиксел
scan - расстояние между строками пикселей в массиве
props - список свойств, которые ImageProducer использует для обработки изображения
См. также:
Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()

Методы

addConsumer

public void addConsumer(ImageConsumer ic)

Добавляет ImageConsumer в список потребителей, заинтересованных в данных для этого изображения.

Унаследованно от:
addConsumer в интерфейсе ImageProducer
Параметры:
ic - указанный ImageConsumer
Исключения:
NullPointerException - если указанный ImageConsumer равен null
См. также:
ImageConsumer

isConsumer

public boolean isConsumer(ImageConsumer ic)

Определяет, находится ли ImageConsumer в списке потребителей, которые в данный момент заинтересованы в данных для этого изображения.

Унаследованно от:
isConsumer в интерфейсе ImageProducer
Параметры:
ic - указанный ImageConsumer
Возвращает:
true если ImageConsumer находится в списке; false в противном случае.
См. также:
ImageConsumer

removeConsumer

public void removeConsumer(ImageConsumer ic)

Удаляет ImageConsumer из списка потребителей, заинтересованных в данных для этого изображения.

Унаследованно от:
removeConsumer в интерфейсе ImageProducer
Параметры:
ic - указанный ImageConsumer
См. также:
ImageConsumer

startProduction

public void startProduction(ImageConsumer ic)

Добавляет ImageConsumer в список потребителей, заинтересованных в данных для этого изображения, и немедленно начинает передачу данных изображения через интерфейс ImageConsumer.

Унаследованно от:
startProduction в интерфейсе ImageProducer
Параметры:
ic - указанный ImageConsumer для передачи данных изображения через интерфейс ImageConsumer.
См. также:
ImageConsumer

requestTopDownLeftRightResend

public void requestTopDownLeftRightResend(ImageConsumer ic)

Запрашивает, чтобы данные изображения были переданы заданному ImageConsumer ещё раз в порядке сверху вниз, слева направо.

Унаследованно от:
requestTopDownLeftRightResend в интерфейсе ImageProducer
Параметры:
ic - указанный ImageConsumer
См. также:
ImageConsumer

setAnimated

public void setAnimated(boolean animated)

Преобразует это изображение памяти в анимацию с несколькими кадрами или статичное изображение с одним кадром в зависимости от параметра animated.

Этот метод следует вызывать сразу после создания MemoryImageSource и перед созданием изображения с его помощью, чтобы гарантировать, что все ImageConsumers получат правильные данные для нескольких кадров. Если ImageConsumer добавляется в этот ImageProducer до установки этого флага, этот ImageConsumer увидит только моментальный снимок данных пикселей, которые были доступны в момент подключения.

Параметры:
animated - true если изображение представляет собой анимацию с несколькими кадрами

setFullBufferUpdates

public void setFullBufferUpdates(boolean fullbuffers)

Указывает, должно ли это анимированное изображение памяти всегда обновляться путём отправки полного буфера пикселей всякий раз, когда происходит изменение. Этот флаг игнорируется, если флаг анимации не включён методом setAnimated().

Этот метод следует вызывать сразу после создания MemoryImageSource и перед созданием изображения с его помощью, чтобы гарантировать, что все ImageConsumers получат правильные подсказки о доставке пикселей.

Параметры:
fullbuffers - true если должен всегда отправляться весь буфер пикселей
См. также:
setAnimated(boolean)

newPixels

public void newPixels()

Отправляет новый буфер пикселей всем ImageConsumers, которые в данный момент заинтересованы в данных для этого изображения, и уведомляет их о завершении кадра анимации. Этот метод эффективен только если флаг анимации был включён методом setAnimated().

См. также:
newPixels(int, int, int, int, boolean), ImageConsumer, setAnimated(boolean)

newPixels

public void newPixels(int x,
                      int y,
                      int w,
                      int h)

Отправляет прямоугольную область буфера пикселей всем ImageConsumers, которые в данный момент заинтересованы в данных для этого изображения, и уведомляет их о завершении кадра анимации. Этот метод эффективен только если флаг анимации был включён методом setAnimated(). Если флаг полного обновления буфера был включён методом setFullBufferUpdates(), параметры прямоугольника будут игнорироваться, и всегда будет отправляться весь буфер.

Параметры:
x - координата x левого верхнего угла прямоугольника пикселей, которые нужно отправить
y - координата y левого верхнего угла прямоугольника пикселей, которые нужно отправить
w - ширина прямоугольника пикселей, которые нужно отправить
h - высота прямоугольника пикселей, которые нужно отправить
См. также:
newPixels(int, int, int, int, boolean), ImageConsumer, setAnimated(boolean), setFullBufferUpdates(boolean)

newPixels

public void newPixels(int x,
                      int y,
                      int w,
                      int h,
                      boolean framenotify)

Отправляет прямоугольную область буфера пикселей любым ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения. Если параметр framenotify равен true, то потребители также уведомляются о завершении кадра анимации. Этот метод имеет эффект только в том случае, если флаг анимации был включён с помощью метода setAnimated(). Если флаг обновления всего буфера был включен с помощью метода setFullBufferUpdates(), то параметры прямоугольника будут игнорироваться, и всегда будет отправляться весь буфер.

Параметры:
x - координата x левого верхнего угла прямоугольника пикселей, которые нужно отправить
y - координата y левого верхнего угла прямоугольника пикселей, которые нужно отправить
w - ширина прямоугольника пикселей, которые нужно отправить
h - высота прямоугольника пикселей, которые нужно отправить
framenotify - true если потребителям должен быть отправлен SINGLEFRAMEDONE уведомление
См. также:
ImageConsumer, setAnimated(boolean), setFullBufferUpdates(boolean)

newPixels

public void newPixels(byte[] newpix,
                      ColorModel newmodel,
                      int offset,
                      int scansize)

Изменяет на новый массив байтов для хранения пикселей этого изображения. Если флаг анимации был включён с помощью метода setAnimated(), новые пиксели будут немедленно переданы любым ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения.

Параметры:
newpix - новый массив пикселей
newmodel - указанный ColorModel
offset - смещение в массиве
scansize - расстояние между строками пикселей в массиве
См. также:
newPixels(int, int, int, int, boolean), setAnimated(boolean)

newPixels

public void newPixels(int[] newpix,
                      ColorModel newmodel,
                      int offset,
                      int scansize)

Изменяет на новый массив целых чисел для хранения пикселей этого изображения. Если флаг анимации был включён с помощью метода setAnimated(), новые пиксели будут немедленно переданы любым ImageConsumers, которые в настоящее время заинтересованы в данных для этого изображения.

Параметры:
newpix - новый массив пикселей
newmodel - указанный ColorModel
offset - смещение в массиве
scansize - расстояние между строками пикселей в массиве
См. также:
newPixels(int, int, int, int, boolean), setAnimated(boolean)

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API