Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:
Главная: Программирование: Java: Растровые изображения в Java.
Растровые изображения в Java.
Автор: Источник: н/дЯзык: русский
Вначале о модели растровых изображений в java. В java используется следующая модель представления растрового изображения: производитель - потребитель - наблюдатель и класс утилит Image. Производитель реализует интерфейс ImageProducer, потребитель - ImageConsumer, а наблюдатель - ImageObserver из пакета java.awt.image. Иллюстрацией работы этой модели может стать процесс загрузки изображения из сети. Вначале продюсер читает размеры картинки и методом void setDimension(int width, int height) передаёт потребителю размеры картинки, потом, в случае gif файла, читает таблицу цветов изображения, производитель создаёт новую таблицу цветов, роль которой выполняет IndexColorModel и методом setColorModel пересылает её потребителю. В случае jpeg файла производитель пересылает DirectColorModel потребителю тем же методом. После этого производитель информирует потребителя методом setHints, в каком порядке он будет выдавать информацию, собственно кодирующую изображение. Этот порядок может быть следующим: выдавать картинку горизонтальными линиями, в произвольном порядке, одним "куском", покадрово (в случае наличия анимации), одиночными точками или постепенно в порядке сверху-вниз, справа-налево. После установки порядка выдачи, производитель начинает методом setPixels заполнять буфер потребителя. Соответственно, в зависимости от выбора передачи изображения, это происходит мгновенно (как в случае MemoryImageSource - одного из классов, реализующего интерфейс ImageProducer) или постепенно, по мере получения информации из потока и раскодирования её, как это получается при загрузке картинки из jpeg или gif файла из сети или с диска. По завершении передачи данных, производитель вызывает метод ImageComplete. Если конец передачи данных произошел из-за ошибки, этот метод вызывается с флагом ImageConsumer.IMAGEERROR, если из-за отмены пересылки, то с флагом ImageConsumer.IMAGEABORT. При пофреймовой загрузки анимированного файла, по окончанию загрузки каждого фрейма тоже вызывается метод ImageComplete, но с флагом ImageConsumer.SINGLEFRAMEDONE. По полному завершению процесса без ошибок, выбрасывается флаг ImageConsumer.STATICIMAGEDONE.
Доступные файлы (отрапортовать об ошибке!):
ПросмотретьЗагрузитьВ портфель! (руководств: 0)Обсудить на форуме





  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2020
    Реклама на сайте