Класс ImageWriter

Все реализованные интерфейсы:
ImageTranscoder
public abstract class ImageWriter
extends Object
implements ImageTranscoder

Абстрактный базовый класс для кодирования и записи изображений. Этот класс должен быть расширен классами, которые записывают изображения в контексте фреймворка Java Image I/O.

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

См. также:
ImageReader, ImageWriteParam, IIORegistry, ImageWriterSpi

Поля

Модификатор и тип Поле Описание
protected Locale[] availableLocales

Массив Locale , который может быть использован для локализации сообщений об ошибках и значений параметров сжатия, или null, если локализация не поддерживается.

protected Locale locale

Текущая Locale для локализации, или null, если не была установлена.

protected ImageWriterSpi originatingProvider

ImageWriterSpi , который создал этот объект, или null, если его идентичность неизвестна или он отсутствует.

protected Object output

ImageOutputStream или другие Object установленные setOutput и полученные getOutput.

protected List<IIOWriteProgressListener> progressListeners

List текущих зарегистрированных IIOWriteProgressListener , инициализированный по умолчанию null, что эквивалентно пустому List.

protected List<IIOWriteWarningListener> warningListeners

List текущих зарегистрированных IIOWriteWarningListener , инициализированный по умолчанию null, что эквивалентно пустому List.

protected List<Locale> warningLocales

List Locale , по одному для каждого элемента warningListeners , инициализированный по умолчанию null, что эквивалентно пустому List.

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

Модификатор Конструктор Описание
protected ImageWriter​(ImageWriterSpi originatingProvider)

Создает ImageWriter и устанавливает его переменную-член originatingProvider в предоставленное значение.

Методы

Модификатор и тип Метод Описание
void abort()

Запрашивает прерывание текущей операции записи.

protected boolean abortRequested()

Возвращает true, если с момента создания объекта записывателя или вызова метода clearAbortRequest была сделана попытка прервать текущую операцию записи.

void addIIOWriteProgressListener​(IIOWriteProgressListener listener)

Добавляет IIOWriteProgressListener в список зарегистрированных слушателей прогресса.

void addIIOWriteWarningListener​(IIOWriteWarningListener listener)

Добавляет IIOWriteWarningListener в список зарегистрированных слушателей предупреждений.

boolean canInsertEmpty​(int imageIndex)

Возвращает true, если записыватель поддерживает вставку нового пустого изображения в указанный индекс.

boolean canInsertImage​(int imageIndex)

Возвращает true, если записыватель поддерживает вставку нового изображения в указанный индекс.

boolean canRemoveImage​(int imageIndex)

Возвращает true, если записыватель поддерживает удаление существующего изображения по указанному индексу.

boolean canReplaceImageMetadata​(int imageIndex)

Возвращает true, если можно заменить метаданные изображения, связанного с существующим изображением с индексом imageIndex.

boolean canReplacePixels​(int imageIndex)

Возвращает true, если записыватель допускает замену пикселей данного изображения с помощью методов replacePixels.

boolean canReplaceStreamMetadata()

Возвращает true, если можно заменить метаданные потока, уже присутствующие в выводе.

boolean canWriteEmpty()

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

boolean canWriteRasters()

Возвращает true, если методы, принимающие параметр IIOImage, способны обрабатывать изображение-источник типа Raster (в отличие от RenderedImage).

boolean canWriteSequence()

Возвращает true, если записыватель может добавить изображение к потоку изображений, который уже содержит заголовок и, возможно, предыдущие изображения.

protected void clearAbortRequest()

Очищает предыдущий запрос на прерывание.

void dispose()

Разрешает освобождение всех ресурсов, удерживаемых этим объектом.

void endInsertEmpty()

Завершает вставку нового изображения, начатую предыдущим вызовом prepareInsertEmpty.

void endReplacePixels()

Прерывает последовательность вызовов replacePixels.

void endWriteEmpty()

Завершает запись нового изображения, начатую предыдущим вызовом prepareWriteEmpty.

void endWriteSequence()

Завершает запись последовательности изображений, начатую методом prepareWriteSequence.

Locale[] getAvailableLocales()

Возвращает массив Locale , которые могут быть использованы для локализации слушателей предупреждений и настроек сжатия.

abstract IIOMetadata getDefaultImageMetadata​(ImageTypeSpecifier imageType, ImageWriteParam param)

Возвращает объект IIOMetadata , содержащий значения по умолчанию для кодирования изображения данного типа.

abstract IIOMetadata getDefaultStreamMetadata​(ImageWriteParam param)

Возвращает объект IIOMetadata , содержащий значения по умолчанию для кодирования потока изображений.

ImageWriteParam getDefaultWriteParam()

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

Locale getLocale()

Возвращает текущее значение Locale, или null, если оно не было установлено.

int getNumThumbnailsSupported​(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)

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

ImageWriterSpi getOriginatingProvider()

Возвращает объект ImageWriterSpi , который создал этот объект ImageWriter, или null , если этот объект не был создан через метод IIORegistry.

Object getOutput()

Возвращает ImageOutputStream или другой Object , установленные последним вызовом метода setOutput.

Dimension[] getPreferredThumbnailSizes​(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)

Возвращает массив Dimension , указывающий допустимые диапазоны размеров изображений-миниатюр, так как они будут закодированы в выходной файл или поток.

void prepareInsertEmpty​(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)

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

void prepareReplacePixels​(int imageIndex, Rectangle region)

Подготавливает записыватель к обработке серии вызовов методов replacePixels.

void prepareWriteEmpty​(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)

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

void prepareWriteSequence​(IIOMetadata streamMetadata)

Подготавливает поток к приему серии последующих вызовов writeToSequence , используя предоставленный объект метаданных потока.

protected void processImageComplete()

Передает завершение записи изображения всем зарегистрированным IIOWriteProgressListener , вызывая их метод imageComplete.

protected void processImageProgress​(float percentageDone)

Передает текущий процент завершения записи изображения всем зарегистрированным IIOWriteProgressListener , вызывая их метод imageProgress.

protected void processImageStarted​(int imageIndex)

Передает начало записи изображения всем зарегистрированным IIOWriteProgressListener , вызывая их метод imageStarted.

protected void processThumbnailComplete()

Передает завершение записи миниатюры всем зарегистрированным IIOWriteProgressListener , вызывая их метод thumbnailComplete.

protected void processThumbnailProgress​(float percentageDone)

Передает текущий процент завершения записи миниатюры всем зарегистрированным IIOWriteProgressListener , вызывая их метод thumbnailProgress.

protected void processThumbnailStarted​(int imageIndex, int thumbnailIndex)

Передает начало записи миниатюры всем зарегистрированным IIOWriteProgressListener , вызывая их метод thumbnailStarted.

protected void processWarningOccurred​(int imageIndex, String warning)

Передает сообщение об ошибке всем зарегистрированным IIOWriteWarningListener , вызывая их метод warningOccurred.

protected void processWarningOccurred​(int imageIndex, String baseName, String keyword)

Передает локализованное сообщение об ошибке всем зарегистрированным IIOWriteWarningListener , вызывая их метод warningOccurred со строкой из ResourceBundle.

protected void processWriteAborted()

Передает информацию о прерывании записи всем зарегистрированным IIOWriteProgressListener , вызывая их метод writeAborted.

void removeAllIIOWriteProgressListeners()

Удаляет все текущие зарегистрированные объекты IIOWriteProgressListener.

void removeAllIIOWriteWarningListeners()

Удаляет все текущие зарегистрированные объекты IIOWriteWarningListener.

void removeIIOWriteProgressListener​(IIOWriteProgressListener listener)

Удаляет IIOWriteProgressListener из списка зарегистрированных слушателей прогресса.

void removeIIOWriteWarningListener​(IIOWriteWarningListener listener)

Удаляет IIOWriteWarningListener из списка зарегистрированных слушателей предупреждений.

void removeImage​(int imageIndex)

Удаляет изображение из потока.

void replaceImageMetadata​(int imageIndex, IIOMetadata imageMetadata)

Заменяет метаданные изображения, связанные с существующим изображением.

void replacePixels​(Raster raster, ImageWriteParam param)

Заменяет часть изображения, уже присутствующего в выводе, частью данного Raster.

void replacePixels​(RenderedImage image, ImageWriteParam param)

Заменяет часть изображения, уже присутствующего в выводе, частью заданного изображения.

void replaceStreamMetadata​(IIOMetadata streamMetadata)

Заменяет метаданные потока в выводе новой информацией.

void reset()

Возвращает ImageWriter к исходному состоянию.

void setLocale​(Locale locale)

Устанавливает текущее значение Locale этого ImageWriter до заданного значения.

void setOutput​(Object output)

Устанавливает место назначения в заданный ImageOutputStream или другой Object.

void write​(RenderedImage image)

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

void write​(IIOImage image)

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

abstract void write​(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)

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

void writeInsert​(int imageIndex, IIOImage image, ImageWriteParam param)

Вставляет новое изображение в существующий поток изображений.

void writeToSequence​(IIOImage image, ImageWriteParam param)

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

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

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

Методы, объявленные в интерфейсе javax.imageio.ImageTranscoder

convertImageMetadata, convertStreamMetadata

Подробное описание полей

originatingProvider

protected ImageWriterSpi originatingProvider

Объект ImageWriterSpi, создавший этот объект, или null, если его идентичность неизвестна или он отсутствует. По умолчанию инициализируется значением null.

output

protected Object output

Объект ImageOutputStream или другой Object, установленный setOutput, и извлекаемый getOutput. По умолчанию инициализируется значением null.

availableLocales

protected Locale[] availableLocales

Массив Locale, которые могут использоваться для локализации сообщений об ошибках и значений параметров сжатия, или null, если локализация не поддерживается. По умолчанию инициализируется значением null.

locale

protected Locale locale

Текущая Locale для локализации или null, если она не установлена. По умолчанию инициализируется значением null.

warningListeners

protected List<IIOWriteWarningListener> warningListeners

Массив List зарегистрированных IIOWriteWarningListener, по умолчанию инициализирован null, что эквивалентно пустому массиву List.

warningLocales

protected List<Locale> warningLocales

Массив List Locale, по одному для каждого элемента warningListeners, по умолчанию инициализирован null, что эквивалентно пустому массиву List.

progressListeners

protected List<IIOWriteProgressListener> progressListeners

Массив List зарегистрированных IIOWriteProgressListeners, по умолчанию инициализирован null, что эквивалентно пустому массиву List.

Подробное описание конструкторов

ImageWriter

protected ImageWriter(ImageWriterSpi originatingProvider)

Создает ImageWriter и устанавливает переменную экземпляра originatingProvider в заданное значение.

Подклассы, использующие расширения, должны предоставить конструктор с сигнатурой (ImageWriterSpi, Object) для извлечения объекта расширения. Если объект расширения непригоден, должно быть выброшено исключение IllegalArgumentException.

Parameters:
originatingProvider - ImageWriterSpi создающий этот объект, или null.

Методы

getOriginatingProvider

public ImageWriterSpi getOriginatingProvider()

Возвращает объект ImageWriterSpi, который создал этот ImageWriter, или null, если этот объект не был создан через IIORegistry.

По умолчанию реализация возвращает значение переменной-члена originatingProvider.

Возвращает:
объект ImageWriterSpi или null.
См. также:
ImageWriterSpi

setOutput

public void setOutput(Object output)

Устанавливает целевой объект ImageOutputStream или другой Object в качестве пункта назначения. Предполагается, что пункт назначения готов принять данные, и он не будет закрыт в конце каждого записи. Это позволяет распределённым приложениям для обработки изображений передавать серию изображений по одному сетевому соединению. Если output равен null, любой текущий выходной объект будет удалён.

Если output является ImageOutputStream, вызовы методов write, writeToSequence и prepareWriteEmpty/endWriteEmpty сохранят существующее содержимое потока. Другие методы записи, такие как writeInsert, replaceStreamMetadata, replaceImageMetadata, replacePixels, prepareInsertEmpty/endInsertEmpty и endWriteSequence, требуют, чтобы всё содержимое потока было доступно для чтения и записи и может изменить любую часть потока.

Использование общего Object объекта, отличного от ImageOutputStream, предназначено для модулей записи, которые взаимодействуют непосредственно с устройством вывода или протоколом обработки изображений. Набор допустимых классов рекламируется методом getOutputTypes поставщика услуг модуля записи; большинство модулей записи вернут массив с единственным элементом ImageOutputStream.class, чтобы указать, что они принимают только ImageOutputStream.

По умолчанию реализация устанавливает переменную-член output в значение output, проверив output на соответствие набору классов, рекламируемых исходным поставщиком, если таковой имеется.

Параметры:
output - объект ImageOutputStream или другой Object для дальнейших записей.
Исключения:
IllegalArgumentException - если output не является экземпляром одного из классов, возвращённых методом getOutputTypes исходного поставщика услуг.
См. также:
getOutput()

getOutput

public Object getOutput()

Возвращает объект ImageOutputStream или другой Object , установленный последним вызовом метода setOutput. Если пункт назначения не был задан, возвращается null.

По умолчанию реализация возвращает значение переменной-члена output.

Возвращает:
объект Object, заданный с помощью метода setOutput, или null.
См. также:
setOutput(java.lang.Object)

getAvailableLocales

public Locale[] getAvailableLocales()

Возвращает массив Locale, которые могут быть использованы для локализации прослушивателей предупреждений и параметров сжатия. Значение null указывает, что локализация не поддерживается.

По умолчанию реализация возвращает копию переменной-члена availableLocales, если она не null, в противном случае возвращает null.

Возвращает:
массив Locale, которые могут быть использованы в качестве аргументов для setLocale, или null.

setLocale

public void setLocale(Locale locale)

Устанавливает текущую Locale этого объекта ImageWriter на заданное значение. Значение null удаляет предыдущую установку и указывает, что модуль записи должен локализовать себя по усмотрению.

По умолчанию реализация проверяет locale на соответствие значениям, возвращённым getAvailableLocales, и устанавливает переменную-член locale, если она найдена. Если locale равно null, переменная-член устанавливается в null без каких-либо проверок.

Параметры:
locale - желаемая Locale или null.
Исключения:
IllegalArgumentException - если locale не null, но не является одним из значений, возвращённых getAvailableLocales.
См. также:
getLocale()

getLocale

public Locale getLocale()

Возвращает текущую установленную Locale, или null, если она не была установлена.

По умолчанию реализация возвращает значение переменной-члена locale.

Возвращает:
текущую Locale, или null.
См. также:
setLocale(java.util.Locale)

getDefaultWriteParam

public ImageWriteParam getDefaultWriteParam()

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

Реализация по умолчанию создаёт и возвращает новый объект ImageWriteParam, который не допускает разделения на плитки, прогрессивного кодирования или сжатия и который будет локализован для текущей Locale (т.е., то, что вы получите, вызвав new ImageWriteParam(getLocale()).

Индивидуальные плагины могут возвращать экземпляр ImageWriteParam с дополнительными необязательными функциями или они могут возвращать экземпляр подкласса плагина ImageWriteParam.

Возвращает:
новый объект ImageWriteParam с значениями по умолчанию.

getDefaultStreamMetadata

public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)

Возвращает объект IIOMetadata , содержащий значения по умолчанию для кодирования потока изображений. Содержимое объекта может быть изменено с помощью XML-структуры, возвращаемой методом IIOMetadata.getAsTree, объекта IIOMetadataController или через специфичные для плагина интерфейсы, а полученные данные передаются одному из методов write, которые принимают параметр метаданных потока.

Необязательный ImageWriteParam может быть передан для случаев, когда он может повлиять на структуру метаданных потока.

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

Модули записи, которые не используют метаданные потока (например, модули записи для форматов единичного изображения) должны возвращать null.

Параметры:
param - объект ImageWriteParam, который будет использоваться для кодирования изображения, или null.
Возвращает:
объект IIOMetadata.

getDefaultImageMetadata

public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType,
                                                    ImageWriteParam param)

Возвращает объект IIOMetadata , содержащий значения по умолчанию для кодирования изображения заданного типа. Содержимое объекта может быть изменено с помощью XML-структуры, возвращаемой методом IIOMetadata.getAsTree, объекта IIOMetadataController или через специфичные для плагина интерфейсы, а полученные данные передаются одному из методов write, которые принимают параметр метаданных потока.

Необязательный ImageWriteParam может быть передан для случаев, когда он может повлиять на структуру метаданных изображения.

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

Параметры:
imageType - объект ImageTypeSpecifier, указывающий формат изображения, которое будет записано позднее.
param - объект ImageWriteParam, который будет использован для кодирования изображения, или null.
Возвращает:
объект IIOMetadata.

getNumThumbnailsSupported

public int getNumThumbnailsSupported(ImageTypeSpecifier imageType,
                                     ImageWriteParam param,
                                     IIOMetadata streamMetadata,
                                     IIOMetadata imageMetadata)

Возвращает количество миниатюр, поддерживаемых форматом, который записывается, с учётом типа изображения и дополнительных параметров записи и метаданных, которые будут использоваться во время кодирования. Значение -1 указывает на то, что недостаточно информации.

Необязательно можно передать объект ImageWriteParam для случаев, когда он может повлиять на обработку миниатюр.

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

Реализация по умолчанию возвращает 0.

Параметры:
imageType - объект ImageTypeSpecifier, указывающий тип записываемого изображения, или null.
param - объект ImageWriteParam, который будет использоваться для записи, или null.
streamMetadata - объект IIOMetadata, который будет использоваться для записи, или null.
imageMetadata - объект IIOMetadata, который будет использоваться для записи, или null.
Возвращает:
количество миниатюр, которые могут быть записаны, с учётом переданных параметров, или -1, если информации недостаточно.

getPreferredThumbnailSizes

public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
                                              ImageWriteParam param,
                                              IIOMetadata streamMetadata,
                                              IIOMetadata imageMetadata)

Возвращает массив Dimensions, указывающий допустимые диапазоны размеров миниатюрных изображений, как они будут закодированы в выходном файле или потоке. Эта информация носит лишь рекомендательный характер; писатель будет изменять размер любых предоставленных миниатюр по мере необходимости.

Информация возвращается в виде набора пар; первый элемент пары содержит минимальную ширину и высоту (включительно), а второй элемент — максимальную ширину и высоту (включительно). Вместе каждая пара определяет допустимый диапазон размеров. Для указания фиксированного размера одинаковая ширина и высота будут отображаться в обоих элементах. Значение возврата null указывает, что размер произвольный или неизвестен.

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

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

Реализация по умолчанию возвращает null.

Параметры:
imageType — ImageTypeSpecifier, указывающий тип записываемого изображения, или null.
param — ImageWriteParam, который будет использоваться для записи, или null.
streamMetadata — объект IIOMetadata , который будет использоваться для записи, или null.
imageMetadata — объект IIOMetadata , который будет использоваться для записи, или null.
Возвращает:
массив Dimensions с чётной длиной не менее двух, или null.

canWriteRasters

public boolean canWriteRasters()

Возвращает true, если методы, принимающие параметр IIOImage, могут работать с Raster (в отличие от RenderedImage) исходным изображением. Если этот метод возвращает false, то эти методы будут выбрасывать UnsupportedOperationException, если им будет предоставлен IIOImage содержащий Raster.

Реализация по умолчанию возвращает false.

Возвращает:
true , если источники Raster поддерживаются.

write

public abstract void write(IIOMetadata streamMetadata,
                           IIOImage image,
                           ImageWriteParam param)
                    throws IOException

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

Выходной поток должен быть задан предварительно с помощью метода setOutput.

Метаданные потока могут быть необязательно предоставлены; если они null, будут использоваться стандартные метаданные потока.

Если canWriteRasters возвращает true, IIOImage может содержать Raster источник. В противном случае он должен содержать RenderedImage источник.

Предоставленные миниатюры будут изменены по мере необходимости, а любые миниатюры, превышающие поддерживаемое количество, будут проигнорированы. Если формат требует дополнительных миниатюр, которые не предоставлены, писатель должен сгенерировать их внутри.

Необязательно может быть предоставлен ImageWriteParam для управления процессом записи. Если param является null, будет использован параметр записи по умолчанию.

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

Параметры:
streamMetadata — объект IIOMetadata , представляющий метаданные потока, или null для использования значений по умолчанию.
image — объект IIOImage , содержащий изображение, миниатюры и метаданные, которые необходимо записать.
param — ImageWriteParam, или null для использования параметра ImageWriteParam по умолчанию.
Исключения:
IllegalStateException — если выходной поток не задан.
UnsupportedOperationException — если image содержит Raster и canWriteRasters возвращает false.
IllegalArgumentException — если image равно null.
IOException — если произошла ошибка во время записи.

write

public void write(IIOImage image)
           throws IOException

Добавляет полный поток изображения, содержащий одно изображение с метаданными и миниатюрами по умолчанию, в выходной поток. Этот метод является сокращенной записью для write(null, image, null).

Параметры:
image — объект IIOImage , содержащий изображение, миниатюры и метаданные, которые необходимо записать.
Исключения:
IllegalStateException — если выходной поток не задан.
IllegalArgumentException — если image равно null.
UnsupportedOperationException — если image содержит Raster и canWriteRasters возвращает false.
IOException — если произошла ошибка во время записи.

write

public void write(RenderedImage image)
           throws IOException

Добавляет полный поток изображения, состоящий из одного изображения с метаданными и миниатюрами по умолчанию, в выходной поток. Этот метод является сокращением для write(null, new IIOImage(image, null, null), null).

Параметры:
image — RenderedImage для записи.
Исключения:
IllegalStateException — если выходной поток не задан.
IllegalArgumentException — если image равно null.
IOException — если произошла ошибка во время записи.

canWriteSequence

public boolean canWriteSequence()

Возвращает true , если писатель может добавить изображение в поток изображения, который уже содержит заголовок и, возможно, предыдущие изображения.

Если canWriteSequence возвращает false, writeToSequence и endWriteSequence будут выбрасывать UnsupportedOperationException.

Реализация по умолчанию возвращает false.

Возвращает:
true , если изображения могут быть добавлены последовательно.

prepareWriteSequence

public void prepareWriteSequence(IIOMetadata streamMetadata)
                          throws IOException

Подготавливает поток к приёму последовательности последующих вызовов writeToSequence, используя предоставленный объект метаданных потока. Метаданные будут записаны в поток, если они должны предшествовать данным изображения. Если аргумент null, используются стандартные метаданные потока.

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

Если canWriteSequence возвращает false, этот метод будет выбрасывать UnsupportedOperationException.

Выходной поток должен быть задан предварительно с использованием метода setOutput.

Реализация по умолчанию выбрасывает IllegalStateException , если выходной поток является null, и в противном случае выбрасывает UnsupportedOperationException.

Параметры:
streamMetadata — объект метаданных потока, или null.
Исключения:
IllegalStateException — если выходной поток не задан.
UnsupportedOperationException — если canWriteSequence возвращает false.
IOException — если произошла ошибка при записи метаданных потока.

writeToSequence

public void writeToSequence(IIOImage image,
                            ImageWriteParam param)
                     throws IOException

Добавляет одно изображение и, возможно, связанные метаданные и миниатюры в выходной поток. Если выходной поток является ImageOutputStream, существующее содержимое выходного потока до текущей позиции поиска может быть очищено, и не должно быть читаемым или записываемым, за исключением случаев, когда подключаемому модулю нужно иметь возможность исправить заголовок, когда вызывается endWriteSequence (например, TIFF).

Если canWriteSequence возвращает false, этот метод будет выбрасывать UnsupportedOperationException.

Выходной поток должен быть задан предварительно с помощью метода setOutput.

Должен быть вызван метод prepareWriteSequence, в противном случае выбрасывается IllegalStateException.

Если canWriteRasters возвращает true, IIOImage может содержать Raster источник. В противном случае он должен содержать RenderedImage источник.

Предоставленные миниатюры будут изменены по мере необходимости, а любые миниатюры, превышающие поддерживаемое количество, будут проигнорированы. Если формат требует дополнительных миниатюр, которые не предоставлены, писатель сгенерирует их внутри.

Необязательно может быть предоставлен ImageWriteParam для управления процессом записи. Если param равно null, будет использован параметр записи по умолчанию.

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

Реализация по умолчанию выбрасывает IllegalStateException если выходной поток null, и в противном случае выбрасывает UnsupportedOperationException.

Параметры:
image — объект IIOImage , содержащий изображение, миниатюры и метаданные, которые необходимо записать.
param — ImageWriteParam, или null для использования параметра ImageWriteParam по умолчанию.
Исключения:
IllegalStateException — если выходной поток не задан, или prepareWriteSequence не был вызван.
UnsupportedOperationException — если canWriteSequence возвращает false.
IllegalArgumentException — если image равно null.
UnsupportedOperationException — если image содержит Raster и canWriteRasters возвращает false.
IOException — если произошла ошибка во время записи.

endWriteSequence

public void endWriteSequence()
                      throws IOException

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

Если canWriteSequence возвращает false, этот метод вызовет UnsupportedOperationException.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае вызывает UnsupportedOperationException.

Исключения:
IllegalStateException - если выходные данные не установлены или prepareWriteSequence не был вызван.
UnsupportedOperationException - если canWriteSequence возвращает false.
IOException - если во время записи произошла ошибка.

canReplaceStreamMetadata

public boolean canReplaceStreamMetadata()
                                 throws IOException

Возвращает true, если можно заменить метаданные потока, уже присутствующие в выводе.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае возвращает false.

Возвращаемое значение:
true если замена метаданных потока разрешена.
Исключения:
IllegalStateException - если выходные данные не установлены.
IOException - если во время запроса произошла ошибка ввода-вывода.

replaceStreamMetadata

public void replaceStreamMetadata(IIOMetadata streamMetadata)
                           throws IOException

Заменяет метаданные потока в выводе на новую информацию. Если выходные данные представляют собой ImageOutputStream, предварительное содержимое потока проверяется и, возможно, редактируется, чтобы освободить место для новых данных. Все предыдущее содержимое вывода должно быть доступно для чтения и записи.

Если canReplaceStreamMetadata возвращает false, будет выброшено UnsupportedOperationException.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае вызывает UnsupportedOperationException.

Параметры:
streamMetadata - объект IIOMetadata, представляющий метаданные потока, или null для использования значений по умолчанию.
Исключения:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplaceStreamMetadata возвращает false. режимы не включают
IOException - если во время записи произошла ошибка.

canReplaceImageMetadata

public boolean canReplaceImageMetadata(int imageIndex)
                                throws IOException

Возвращает true, если можно заменить метаданные изображения, связанные с существующим изображением с индексом imageIndex. Если этот метод возвращает false, вызов replaceImageMetadata(imageIndex) вызовет UnsupportedOperationException.

Записывающее устройство, которое не поддерживает замену метаданных изображения, может вернуть false без проверки границ индекса.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае возвращает false без проверки значения imageIndex.

Параметры:
imageIndex - индекс изображения, метаданные которого необходимо заменить.
Возвращаемое значение:
true если метаданные изображения данного изображения могут быть заменены.
Исключения:
IllegalStateException - если выходные данные не установлены.
IndexOutOfBoundsException - если записывающее устройство в целом поддерживает замену метаданных изображения, но imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IOException - если во время запроса произошла ошибка ввода-вывода.

replaceImageMetadata

public void replaceImageMetadata(int imageIndex,
                                 IIOMetadata imageMetadata)
                          throws IOException

Заменяет метаданные изображения, связанные с существующим изображением.

Если canReplaceImageMetadata(imageIndex) возвращает false, будет выброшено UnsupportedOperationException.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае вызывает UnsupportedOperationException.

Параметры:
imageIndex - индекс изображения, метаданные которого необходимо заменить.
imageMetadata - объект IIOMetadata, представляющий метаданные изображения, или null.
Исключения:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplaceImageMetadata возвращает false.
IndexOutOfBoundsException - если imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IOException - если во время записи произошла ошибка.

canInsertImage

public boolean canInsertImage(int imageIndex)
                       throws IOException

Возвращает true, если записывающее устройство поддерживает вставку нового изображения с заданным индексом. Существующие изображения с индексами, большими или равными индексу вставки, будут иметь свои индексы увеличены на 1. Значение imageIndex равное -1 может использоваться для обозначения индекса на единицу больше, чем текущий наибольший индекс.

Записывающее устройство, которое не поддерживает вставку изображения, может вернуть false без проверки границ индекса.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае возвращает false без проверки значения imageIndex.

Параметры:
imageIndex - индекс, в который нужно вставить изображение.
Возвращаемое значение:
true если изображение может быть вставлено с заданным индексом.
Исключения:
IllegalStateException - если выходные данные не установлены.
IndexOutOfBoundsException - если записывающее устройство в целом поддерживает вставку изображений, но imageIndex меньше -1 или больше, чем наибольший доступный индекс.
IOException - если во время запроса произошла ошибка ввода-вывода.

writeInsert

public void writeInsert(int imageIndex,
                        IIOImage image,
                        ImageWriteParam param)
                 throws IOException

Вставляет новое изображение в существующий поток изображений. Существующие изображения с индексом больше, чем imageIndex, сохраняются, и их индексы увеличиваются на 1. Значение imageIndex равное -1 может использоваться для обозначения индекса на единицу больше, чем предыдущий наибольший индекс; то есть, это приведет к тому, что изображение будет логически добавлено в конец последовательности. Если выходные данные представляют собой ImageOutputStream, весь поток должен быть доступен как для чтения, так и для записи.

Если canInsertImage(imageIndex) возвращает false, будет выброшено UnsupportedOperationException.

ImageWriteParam может опционально предоставляться для управления процессом записи. Если param является null, будет использоваться параметр записи по умолчанию.

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

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае вызывает UnsupportedOperationException.

Параметры:
imageIndex - индекс, в который нужно записать изображение.
image - объект IIOImage, содержащий изображение, эскизы и метаданные для записи.
param - ImageWriteParam, или null для использования ImageWriteParam по умолчанию.
Исключения:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canInsertImage(imageIndex) возвращает false.
IllegalArgumentException - если image является null.
IndexOutOfBoundsException - если imageIndex меньше -1 или больше, чем наибольший доступный индекс.
UnsupportedOperationException - если image содержит Raster и canWriteRasters возвращает false.
IOException - если во время записи произошла ошибка.

canRemoveImage

public boolean canRemoveImage(int imageIndex)
                       throws IOException

Возвращает true, если записывающее устройство поддерживает удаление существующего изображения с заданным индексом. Существующие изображения с индексами, большими, чем индекс вставки, будут иметь свои индексы уменьшены на 1.

Записывающее устройство, которое не поддерживает удаление изображений, может вернуть false без проверки границ индекса.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае возвращает false без проверки значения imageIndex.

Параметры:
imageIndex - индекс изображения для удаления.
Возвращаемое значение:
true если можно удалить данное изображение.
Исключения:
IllegalStateException - если выходные данные не установлены.
IndexOutOfBoundsException - если записывающее устройство в целом поддерживает удаление изображений, но imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IOException - если во время запроса произошла ошибка ввода-вывода.

removeImage

public void removeImage(int imageIndex)
                 throws IOException

Удаляет изображение из потока.

Если canRemoveImage(imageIndex) возвращает false, будет выброшено UnsupportedOperationException.

Удаление может или не может привести к уменьшению фактического размера файла.

Реализация по умолчанию вызывает IllegalStateException, если выходные данные являются null, и в противном случае вызывает UnsupportedOperationException.

Параметры:
imageIndex - индекс изображения для удаления.
Исключения:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canRemoveImage(imageIndex) возвращает false.
IndexOutOfBoundsException - если imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IOException - если во время удаления произошла ошибка ввода-вывода.

canWriteEmpty

public boolean canWriteEmpty()
                      throws IOException

Возвращает true , если писатель поддерживает запись полного потока изображения, состоящего из одного изображения с неопределёнными значениями пикселей и связанными метаданными и миниатюрами в выходной поток. Значения пикселей могут быть определены последующими вызовами методов replacePixels. Если выходной поток является ImageOutputStream, его содержимое до текущей позиции поиска не изменяется и не должно быть читаемым или записываемым.

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае возвращает false.

Возвращает:
true , если запись полного потока изображения с содержимым, которое будет определено позже, поддерживается.
Выбрасывает:
IllegalStateException - если выходной поток не задан.
IOException - если во время запроса произошла ошибка ввода-вывода.

prepareWriteEmpty

public void prepareWriteEmpty(IIOMetadata streamMetadata,
                              ImageTypeSpecifier imageType,
                              int width,
                              int height,
                              IIOMetadata imageMetadata,
                              List<? extends BufferedImage> thumbnails,
                              ImageWriteParam param)
                       throws IOException

Начинает запись полного потока изображения, состоящего из одного изображения с неопределёнными значениями пикселей и связанными метаданными и миниатюрами, в выходной поток. Значения пикселей будут определены последующими вызовами методов replacePixels. Если выходной поток является ImageOutputStream, его содержимое до текущей позиции поиска не изменяется и не должно быть читаемым или записываемым.

Запись не завершена до вызова endWriteEmpty. Вызовы prepareReplacePixels, replacePixels, и endReplacePixels могут выполняться между вызовами prepareWriteEmpty и endWriteEmpty. Однако, вызовы prepareWriteEmpty не могут быть вложены, а вызовы prepareWriteEmpty и prepareInsertEmpty не могут быть перемешаны.

Если canWriteEmpty возвращает false, будет выброшено исключение UnsupportedOperationException.

Опционально можно передать ImageWriteParam, чтобы управлять процессом записи. Если param равно null, будет использован параметр записи по умолчанию.

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

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае выбрасывает исключение UnsupportedOperationException.

Параметры:
streamMetadata - объект IIOMetadata, представляющий метаданные потока, или null, чтобы использовать значения по умолчанию.
imageType - объект ImageTypeSpecifier, описывающий расположение изображения.
width - ширина изображения.
height - высота изображения.
imageMetadata - объект IIOMetadata, представляющий метаданные изображения, или null.
thumbnails - список List миниатюр для этого изображения, или null.
param - объект ImageWriteParam, или null, чтобы использовать параметр записи по умолчанию.
Выбрасывает:
IllegalStateException - если выходной поток не задан.
UnsupportedOperationException - если canWriteEmpty возвращает false.
IllegalStateException - если предыдущий вызов prepareWriteEmpty был сделан без соответствующего вызова endWriteEmpty.
IllegalStateException - если предыдущий вызов prepareInsertEmpty был сделан без соответствующего вызова endInsertEmpty.
IllegalArgumentException - если imageType равно null или thumbnails содержит ссылки или объекты, отличные от BufferedImage.
IllegalArgumentException - если ширина или высота меньше 1.
IOException - если во время записи произошла ошибка ввода-вывода.

endWriteEmpty

public void endWriteEmpty()
                   throws IOException

Завершает запись нового изображения, начатой предыдущим вызовом prepareWriteEmpty.

Если canWriteEmpty() возвращает false, будет выброшено исключение UnsupportedOperationException.

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае выбрасывает исключение UnsupportedOperationException.

Выбрасывает:
IllegalStateException - если выходной поток не задан.
UnsupportedOperationException - если canWriteEmpty(imageIndex) возвращает false.
IllegalStateException - если предыдущий вызов prepareWriteEmpty без соответствующего вызова endWriteEmpty не был сделан.
IllegalStateException - если предыдущий вызов prepareInsertEmpty без соответствующего вызова endInsertEmpty был сделан.
IllegalStateException - если вызов prepareReiplacePixels был сделан без соответствующего вызова endReplacePixels.
IOException - если во время записи произошла ошибка ввода-вывода.

canInsertEmpty

public boolean canInsertEmpty(int imageIndex)
                       throws IOException

Возвращает true, если писатель поддерживает вставку нового пустого изображения в заданном индексе. Значения пикселей изображения не определены и могут быть указаны частями с помощью методов replacePixels. Существующие изображения с индексами, большими или равными индексу вставки, получат увеличенные индексы на 1. Значение для imageIndex -1 может быть использовано для обозначения индекса, на единицу большего, чем текущий максимальный индекс.

Писатель, который не поддерживает вставку пустых изображений, может вернуть false без проверки границ индекса.

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае возвращает false без проверки значения imageIndex.

Параметры:
imageIndex - индекс, в который нужно вставить изображение.
Возвращает:
true , если пустое изображение может быть вставлено в заданном индексе.
Выбрасывает:
IllegalStateException - если выходной поток не задан.
IndexOutOfBoundsException - если писатель поддерживает вставку пустых изображений в целом, но imageIndex меньше -1 или больше максимального доступного индекса.
IOException - если во время запроса произошла ошибка ввода-вывода.

prepareInsertEmpty

public void prepareInsertEmpty(int imageIndex,
                               ImageTypeSpecifier imageType,
                               int width,
                               int height,
                               IIOMetadata imageMetadata,
                               List<? extends BufferedImage> thumbnails,
                               ImageWriteParam param)
                        throws IOException

Начинает вставку нового изображения с неопределёнными значениями пикселей в существующий поток изображения. Существующие изображения с индексом больше imageIndex сохраняются, и их индексы увеличиваются на 1. Значение imageIndex -1 может быть использовано для обозначения индекса, на единицу большего, чем предыдущий максимальный индекс; то есть, это вызовет логическое добавление изображения в конец последовательности. Если выходной поток является replacePixels, весь поток должен быть одновременно читаемым и записываемым.

Содержимое изображения может быть указано позже с помощью метода replacePixels. Вставка не завершена до вызова endInsertEmpty . Вызовы prepareReplacePixels, replacePixels, и endReplacePixels могут выполняться между вызовами prepareInsertEmpty и endInsertEmpty . Однако, вызовы prepareInsertEmpty не могут быть вложены, и вызовы prepareWriteEmpty и prepareInsertEmpty не могут быть перемешаны.

Если canInsertEmpty(imageIndex) возвращает false, будет выброшено исключение UnsupportedOperationException.

Опционально можно передать ImageWriteParam, чтобы управлять процессом записи. Если param равно null, будет использован параметр записи по умолчанию.

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

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае выбрасывает исключение UnsupportedOperationException.

Параметры:
imageIndex - индекс, в который нужно вставить изображение.
imageType - объект ImageTypeSpecifier, описывающий расположение изображения.
width - ширина изображения.
height - высота изображения.
imageMetadata - объект IIOMetadata, представляющий метаданные изображения, или null.
thumbnails - список List миниатюр для этого изображения, или null.
param - объект ImageWriteParam, или null, чтобы использовать параметр записи по умолчанию.
Выбрасывает:
IllegalStateException - если выходной поток не задан.
UnsupportedOperationException - если canInsertEmpty(imageIndex) возвращает false.
IndexOutOfBoundsException - если imageIndex меньше -1 или больше максимального доступного индекса.
IllegalStateException - если предыдущий вызов prepareInsertEmpty был сделан без соответствующего вызова endInsertEmpty.
IllegalStateException - если предыдущий вызов prepareWriteEmpty был сделан без соответствующего вызова endWriteEmpty.
IllegalArgumentException - если imageType равно null или thumbnails содержит ссылки или объекты, отличные от BufferedImage.
IllegalArgumentException - если ширина или высота меньше 1.
IOException - если во время записи произошла ошибка ввода-вывода.

endInsertEmpty

public void endInsertEmpty()
                    throws IOException

Завершает вставку нового изображения, начатой предыдущим вызовом prepareInsertEmpty.

По умолчанию реализация выбрасывает исключение IllegalStateException, если выходной поток является null, и в противном случае выбрасывает исключение UnsupportedOperationException.

Throws:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canInsertEmpty(imageIndex) возвращает false.
IllegalStateException - если предыдущий вызов prepareInsertEmpty без соответствующего вызова endInsertEmpty не был сделан.
IllegalStateException - если предыдущий вызов prepareWriteEmpty без соответствующего вызова endWriteEmpty был сделан.
IllegalStateException - если вызов prepareReplacePixels был сделан без соответствующего вызова endReplacePixels.
IOException - если возникает ошибка ввода-вывода во время записи.

canReplacePixels

public boolean canReplacePixels(int imageIndex)
                         throws IOException

Возвращает true, если средство записи позволяет заменять пиксели данного изображения с помощью методов replacePixels.

Средство записи, которое не поддерживает замену пикселей, может возвращать false без проверки границ индекса.

Реализация по умолчанию вызывает исключение IllegalStateException, если выходные данные null, и в противном случае возвращает false без проверки значения imageIndex.

Parameters:
imageIndex - индекс изображения, пиксели которого должны быть заменены.
Returns:
true если пиксели данного изображения могут быть заменены.
Throws:
IllegalStateException - если выходные данные не установлены.
IndexOutOfBoundsException - если средство записи в целом поддерживает замену пикселей, но imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IOException - если возникает ошибка ввода-вывода во время запроса.

prepareReplacePixels

public void prepareReplacePixels(int imageIndex,
                                 Rectangle region)
                          throws IOException

Подготавливает средство записи для обработки серии вызовов методов replacePixels. Затронутая область пикселей будет усечена до предоставленного

Если canReplacePixels возвращает false, и будет выброшено UnsupportedOperationException.

Реализация по умолчанию вызывает исключение IllegalStateException, если выходные данные null, и в противном случае вызывает исключение UnsupportedOperationException.

Parameters:
imageIndex - индекс изображения, пиксели которого должны быть заменены.
region - Rectangle, который будет использоваться для обрезки будущих областей пикселей.
Throws:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplacePixels(imageIndex) возвращает false.
IndexOutOfBoundsException - если imageIndex меньше 0 или больше, чем наибольший доступный индекс.
IllegalStateException - если есть предыдущий вызов prepareReplacePixels без соответствующего вызова endReplacePixels (т.е., вложение не допускается).
IllegalArgumentException - если region null или имеет ширину или высоту меньше 1.
IOException - если возникает ошибка ввода-вывода во время подготовки.

replacePixels

public void replacePixels(RenderedImage image,
                          ImageWriteParam param)
                   throws IOException

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

Целевая область указана в аргументе param и будет усечена до границ изображения и области, предоставленной prepareReplacePixels. По крайней мере один пиксель источника не должен быть обрезан, иначе будет выброшено исключение.

ImageWriteParam может опционально предоставляться для управления процессом записи. Если param null, будет использован параметр записи по умолчанию.

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

Этот метод может вызываться только после вызова prepareReplacePixels, иначе будет выброшено исключение IllegalStateException.

Реализация по умолчанию вызывает исключение IllegalStateException, если выходные данные null, и в противном случае вызывает исключение UnsupportedOperationException.

Parameters:
image - RenderedImage содержащий исходные пиксели.
param - ImageWriteParam, или null для использования параметра по умолчанию ImageWriteParam.
Throws:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplacePixels(imageIndex) возвращает false.
IllegalStateException - если нет предыдущего вызова prepareReplacePixels без соответствующего вызова endReplacePixels.
IllegalArgumentException - если истинно любое из следующих условий:
  • image null.
  • пересекающаяся область не содержит хотя бы одного пикселя.
  • макет image не совпадает, или это средство записи не может преобразовать его в существующий макет изображения.
IOException - если возникает ошибка ввода-вывода во время записи.

replacePixels

public void replacePixels(Raster raster,
                          ImageWriteParam param)
                   throws IOException

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

ImageWriteParam может опционально предоставляться для управления процессом записи. Если param null, будет использован параметр записи по умолчанию.

Целевая область указана в аргументе param и будет усечена до границ изображения и области, предоставленной prepareReplacePixels. По крайней мере один пиксель источника не должен быть обрезан, иначе будет выброшено исключение.

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

Этот метод может вызываться только после вызова prepareReplacePixels, иначе будет выброшено исключение IllegalStateException.

Реализация по умолчанию вызывает исключение IllegalStateException, если выходные данные null, и в противном случае вызывает исключение UnsupportedOperationException.

Parameters:
raster - Raster содержащий исходные пиксели.
param - ImageWriteParam, или null для использования параметра по умолчанию ImageWriteParam.
Throws:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplacePixels(imageIndex) возвращает false.
IllegalStateException - если нет предыдущего вызова prepareReplacePixels без соответствующего вызова endReplacePixels.
UnsupportedOperationException - если canWriteRasters возвращает false.
IllegalArgumentException - если истинно любое из следующих условий:
  • raster null.
  • пересекающаяся область не содержит хотя бы одного пикселя.
  • макет raster не совпадает, или это средство записи не может преобразовать его в существующий макет изображения.
IOException - если возникает ошибка ввода-вывода во время записи.

endReplacePixels

public void endReplacePixels()
                      throws IOException

Завершает последовательность вызовов replacePixels.

Если canReplacePixels возвращает false, и будет выброшено UnsupportedOperationException.

Реализация по умолчанию вызывает исключение IllegalStateException, если выходные данные null, и в противном случае вызывает исключение UnsupportedOperationException.

Throws:
IllegalStateException - если выходные данные не установлены.
UnsupportedOperationException - если canReplacePixels(imageIndex) возвращает false.
IllegalStateException - если нет предыдущего вызова prepareReplacePixels без соответствующего вызова endReplacePixels.
IOException - если возникает ошибка ввода-вывода во время записи.

abort

public void abort()

Запрашивает прерывание любой текущей операции записи. Содержимое выходных данных после прерывания будет неопределенным.

Средства записи должны вызывать clearAbortRequest в начале каждой операции записи и регулярно проверять значение abortRequested во время записи.

abortRequested

protected boolean abortRequested()

Возвращает true, если запрос на прерывание текущей операции записи был сделан с момента создания средства записи или вызова clearAbortRequest.

Returns:
true если текущую операцию записи следует прервать.
See Also:
abort(), clearAbortRequest()

clearAbortRequest

protected void clearAbortRequest()

Очищает любой предыдущий запрос на прерывание. После вызова этого метода abortRequested будет возвращать false.

See Also:
abort(), abortRequested()

addIIOWriteWarningListener

public void addIIOWriteWarningListener(IIOWriteWarningListener listener)

Добавляет IIOWriteWarningListener в список зарегистрированных обработчиков предупреждений. Если listener null, исключение не будет выброшено и никаких действий не будет предпринято. Сообщения, отправленные данному обработчику, будут локализованы, если это возможно, в соответствии с текущим Locale. Если Locale не установлен, предупреждения могут быть локализованы по усмотрению средства записи.

Parameters:
listener - IIOWriteWarningListener, который необходимо зарегистрировать.
See Also:
removeIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)

Удаляет IIOWriteWarningListener из списка зарегистрированных обработчиков предупреждений. Если обработчик не был ранее зарегистрирован, или если listener null, исключение не будет выброшено и никаких действий не будет предпринято.

Параметры:
listener - объект IIOWriteWarningListener, который необходимо отменить регистрацию.
См. также:
addIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeAllIIOWriteWarningListeners

public void removeAllIIOWriteWarningListeners()

Удаляет все текущие зарегистрированные объекты IIOWriteWarningListener.

Реализация по умолчанию устанавливает переменные экземпляра warningListeners и warningLocales в значение null.

addIIOWriteProgressListener

public void addIIOWriteProgressListener(IIOWriteProgressListener listener)

Добавляет объект IIOWriteProgressListener в список зарегистрированных слушателей прогресса. Если listener имеет значение null, исключение не будет выброшено, и никаких действий не будет выполнено.

Параметры:
listener - объект IIOWriteProgressListener для регистрации.
См. также:
removeIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeIIOWriteProgressListener

public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)

Удаляет объект IIOWriteProgressListener из списка зарегистрированных слушателей прогресса. Если слушатель ранее не был зарегистрирован, или если listener имеет значение null, исключение не будет выброшено, и никаких действий не будет выполнено.

Параметры:
listener - объект IIOWriteProgressListener для отмены регистрации.
См. также:
addIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeAllIIOWriteProgressListeners

public void removeAllIIOWriteProgressListeners()

Удаляет все текущие зарегистрированные объекты IIOWriteProgressListener.

Реализация по умолчанию устанавливает переменную экземпляра progressListeners в значение null.

processImageStarted

protected void processImageStarted(int imageIndex)

Передает начало записи изображения всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод imageStarted. Подклассы могут использовать этот метод для удобства.

Параметры:
imageIndex - индекс изображения, которое будет записано.

processImageProgress

protected void processImageProgress(float percentageDone)

Передает текущий процент завершения изображения всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод imageProgress. Подклассы могут использовать этот метод для удобства.

Параметры:
percentageDone - текущий процент завершения, как float.

processImageComplete

protected void processImageComplete()

Передает завершение записи изображения всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод imageComplete. Подклассы могут использовать этот метод для удобства.

processThumbnailStarted

protected void processThumbnailStarted(int imageIndex,
                                       int thumbnailIndex)

Передает начало записи миниатюры всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод thumbnailStarted. Подклассы могут использовать этот метод для удобства.

Параметры:
imageIndex - индекс изображения, связанного с миниатюрой.
thumbnailIndex - индекс миниатюры.

processThumbnailProgress

protected void processThumbnailProgress(float percentageDone)

Передает текущий процент завершения миниатюры всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод thumbnailProgress. Подклассы могут использовать этот метод для удобства.

Параметры:
percentageDone - текущий процент завершения, как float.

processThumbnailComplete

protected void processThumbnailComplete()

Передает завершение записи миниатюры всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод thumbnailComplete. Подклассы могут использовать этот метод для удобства.

processWriteAborted

protected void processWriteAborted()

Передает информацию о прерывании записи всем зарегистрированным слушателям IIOWriteProgressListener вызвав их метод writeAborted. Подклассы могут использовать этот метод для удобства.

processWarningOccurred

protected void processWarningOccurred(int imageIndex,
                                      String warning)

Передает сообщение об ошибке всем зарегистрированным слушателям IIOWriteWarningListener вызвав их метод warningOccurred. Подклассы могут использовать этот метод для удобства.

Параметры:
imageIndex - индекс изображения, на котором произошла ошибка.
warning - сообщение об ошибке.
Исключения:
IllegalArgumentException - если warning имеет значение null.

processWarningOccurred

protected void processWarningOccurred(int imageIndex,
                                      String baseName,
                                      String keyword)

Передает локализованное сообщение об ошибке всем зарегистрированным слушателям IIOWriteWarningListener вызвав их метод warningOccurred с использованием строки из ResourceBundle. Подклассы могут использовать этот метод для удобства.

Параметры:
imageIndex - индекс изображения, на котором произошла ошибка.
baseName - базовое имя набора ResourceBundle, содержащего локализованные сообщения об ошибках.
keyword - ключевое слово для индексирования сообщения об ошибке в наборе ResourceBundle.
Исключения:
IllegalArgumentException - если baseName имеет значение null.
IllegalArgumentException - если keyword имеет значение null.
IllegalArgumentException - если не найдено подходящее ResourceBundle.
IllegalArgumentException - если указанный ресурс не найден в найденном ResourceBundle.
IllegalArgumentException - если объект, полученный из ResourceBundle, не является String.

reset

public void reset()

Восстанавливает ImageWriter в его исходное состояние.

Реализация по умолчанию вызывает setOutput(null), setLocale(null), removeAllIIOWriteWarningListeners(), removeAllIIOWriteProgressListeners(), и clearAbortRequest.

dispose

public void dispose()

Позволяет освободить все ресурсы, удерживаемые этим объектом. Результат вызова любого другого метода (кроме finalize) после вызова этого метода не определен.

Важно, чтобы приложения вызывали этот метод, когда они больше не будут использовать этот ImageWriter. В противном случае, писатель может продолжать удерживать ресурсы неопределенно долго.

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

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/ImageWriter.html

Spec-Zone .ru
спецификации, руководства, описания, API