Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации
СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

3.7 Прислушивание к Событиям

As an image is being read or written, the plug-in may provide updates to the 
application. The application may provide one or more classes that implement 
interfaces from the javax.image.event package. Instances of these classes are then 
added to the ImageReader or ImageWriter being used. For example,

class MyReadProgressListener implements IIOReadProgressListener {

        public MyReadProgressListener() {}

        public void imageStarted(ImageReader source) {
                System.out.println("Started reading!");
        }

        // Other methods from IIOReadProgressListener omitted
}

IIOReadProgressListener listener = new MyReadProgressListener();
reader.addIIOReadProgressListener(listener);
Как ImageReader.read продвижения метода, методы на listener будет вызван неоднократно, чтобы указать, сколько из изображения было считано. Поскольку эти методы вызывают в то время как ImageReader.read является активным, они не должны вызвать большинство методов от того же самого ImageReader объект. Они могут вызвать ImageReader.abort(), который вызовет ImageReader.read возвратиться, даже если это только частично полно.

3.7.1 IIOReadProgressListener Интерфейс

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

imageStarted метод вызовут в начале чтения. Во время чтения, imageProgress метод вызовут многократно, каждый раз с различным, увеличивающимся значением для percentageDone параметр. Когда чтение собирается завершиться, imageComplete метод вызовут.

Точно так же thumbnailStarted, thumbnailProgress, и thumbnailComplete методы вызовут во время чтений миниатюры.

Другие методы существуют, чтобы указать на запуск и конец последовательности чтений изображения, выполняемых ImageReader.readAll метод. Дополнительно, для продолжающегося чтения возможно быть прерванным, используя ImageReader.abort метод; в этом случае, слушатель readAborted метод вызовут.


3.7.2 IIOReadUpdateListener Интерфейс

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

Реализовывая методы IIOReadUpdateListener интерфейс, приложение, class может получить уведомление, когда группы возможно пикселей состоящих из нескольких несмежных участков готовы быть выведенными на экран. Эти методы также получают ссылку на BufferedImage это находится в процессе того, чтобы быть переполненным в, который может использоваться, чтобы обновить дисплей, чтобы включать недавно декодируемые пиксели.

Декодируя чересстрочное или прогрессивное изображение, декодирование продолжается в многократных передачах. В начале каждой передачи, слушатель passStarted метод вызовут, чтобы указать на набор пикселей, которые могут быть перезаписаны во время следующей передачи. Эта оценка консервативна; не каждый пиксель в области будет обязательно обновлен во время передачи. Поскольку передача прогрессирует, imageUpdate метод вызовут с параметрами, описывающими область пикселей, которые имеют, получают новые значения. Эта область описывается координатами ее верхнего левого угла, ее width и height, и интервала между пикселями, которые составляют передачу (в примере выше, оба параметра были бы равны 4 для начальной передачи). Когда передача завершилась, passComplete метод вызывают. Подобные методы позволяют продвижению чтений изображения миниатюры быть прослеженным.


3.7.3 IIOReadWarningListener Интерфейс

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

ImageReaders может определить ряд Locales, для которого они могут обеспечить локализованные предупреждающие сообщения. Набор доступных локалей может быть получен от читателя getAvailableLocales метод. Требуемая локаль должна тогда быть установлена, вызывая читателя setLocale метод до присоединения IIOReadWarningListener. Каждый слушатель получит сообщения в Locale это было в действительности в то время, когда это было присоединено к читателю.


3.7.4 IIOWriteProgressListener и IIOWriteWarningListener Интерфейсы

IIOWriteProgressListener и IIOWriteWarningListener интерфейсы функционируют так же к их дубликатам читателя.

СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами