Иллюстрированный самоучитель по Java



              

Модель обработки "поставщик-потребитель"


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

В библиотеке AWT применяются две модели обработки изображения. Одна модель реализует давно известную в программировании общую модель "поставщик-потребитель" (Producer-Consumer). Согласно этой модели один объект, "поставщик", генерирует сам или преобразует полученную из другого места продукцию, в данном случае, набор пикселов, и передает другим объектам. Эти объекты, "потребители", принимают продукцию и тоже преобразуют ее при необходимости. Только после этого создается объект класса image и изображение выводится на экран. У одного поставщика может быть несколько потребителей, которые должны быть зарегистрированы поставщиком. Поставщик и потребитель активно взаимодействуют, обращаясь к методам друг друга.

В AWT эта модель описана В двух интерфейсах: ImageProducer И ImageConsumer пакета j ava. awt. image.

Интерфейс ImageProducer описывает пять методов:

addConsumer(ImageConsumer ic)

— регистрирует потребителя ic; removeConsumer (ImageConsumer ic) — отменяет регистрацию;

isConsumer( ImageConsumer ic)

— логический метод, проверяет, зарегистрирован ли потребитель ic;

startProduction (ImageConsumer ic)

— регистрирует потребителя ic И НЭ-чинает поставку изображения всем зарегистрированным потребителям;

requestTopDownLeftRightResend (ImageConsumer ic)

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

С каждым экземпляром класса image связан объект, реализующий интерфейс ImageProducer. Его можно получить методом getSource () класса Image.

Самая простая реализация интерфейса ImageProducer — класс метогу-imagesource — создает пикселы в оперативной памяти по массиву байтов или целых чисел. Вначале создается массив pix, содержащий цвет каждой точки. Затем одним из шести конструкторов создается объект класса




Содержание  Назад  Вперед