Spec-Zone.ru › OpenJDK 25

Класс ImageWriter

java.lang.Object
javax.imageio.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.

Краткое описание конструкторов

ImageWriter(ImageWriterSpi originatingProvider)
Модификатор Конструктор Описание
protected
Создает объект 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)
Добавляет в выходные данные одно изображение и, возможно, связанные с ним метаданные и миниатюры.

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

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

Методы, объявленные в интерфейсе 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 зарегистрированных в данный момент IIOWriteProgressListener, по умолчанию инициализируемый значением null, которое является синонимом пустого List.

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

ImageWriter

protected ImageWriter(ImageWriterSpi originatingProvider)
Создает ImageWriter и присваивает предоставленное значение его переменной экземпляра originatingProvider.

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

Параметры:
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(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(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)
Возвращает массив Dimension, указывающих допустимые диапазоны размеров миниатюр при их кодировании в выходной файл или поток. Эта информация носит рекомендательный характер; средство записи при необходимости изменит размер предоставленных миниатюр.

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

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

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

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

Параметры:
imageType — объект ImageTypeSpecifier, указывающий тип записываемого изображения, или null.
param — объект ImageWriteParam, который будет использоваться для записи, или null.
streamMetadata — объект IIOMetadata, который будет использоваться для записи, или null.
imageMetadata — объект IIOMetadata, который будет использоваться для записи, или null.
Возвращает:
массив Dimension четной длины, не менее двух, или 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, существующее содержимое до текущей позиции поиска сбрасывается, и его не обязательно иметь возможность читать или записывать. Если формат требует, чтобы endWriteSequence мог вернуться назад для исправления информации заголовка, например при последовательности изображений в одном файле 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. Между вызовами prepareWriteEmpty и endWriteEmpty могут происходить вызовы prepareReplacePixels, replacePixels и endReplacePixels. Однако вызовы 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, содержащий BufferedImage эскизов этого изображения, или null.
param — объект ImageWriteParam или null для использования ImageWriteParam по умолчанию.
Выбрасывает:
IllegalStateException — если выходной поток не задан.
UnsupportedOperationException — если canWriteEmpty возвращает false.
IllegalStateException — если был выполнен предыдущий вызов prepareWriteEmpty без соответствующего вызова endWriteEmpty.
IllegalStateException — если был выполнен предыдущий вызов prepareInsertEmpty без соответствующего вызова endInsertEmpty.
IllegalArgumentException — если imageType имеет значение null или thumbnails содержит ссылки null либо объекты, не являющиеся 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, можно использовать для обозначения индекса, на единицу превышающего предыдущий наибольший индекс; в этом случае изображение логически добавляется в конец последовательности. Если выходной поток является ImageOutputStream, весь поток должен быть доступен как для чтения, так и для записи.

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

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

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

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

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

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

endInsertEmpty

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

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

Выбрасывает:
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.

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

prepareReplacePixels

public void prepareReplacePixels(int imageIndex, Rectangle region) throws IOException
Подготавливает записывающий модуль к выполнению серии вызовов методов replacePixels. Затрагиваемая область пикселей будет обрезана по указанному

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

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

Параметры:
imageIndex — индекс изображения, пиксели которого требуется заменить.
region — объект Rectangle, который будет использоваться для обрезки будущих областей пикселей.
Выбрасывает:
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.

Параметры:
image — объект RenderedImage, содержащий исходные пиксели.
param — объект ImageWriteParam или null для использования ImageWriteParam по умолчанию.
Выбрасывает:
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.

Параметры:
raster — объект Raster, содержащий исходные пиксели.
param — объект ImageWriteParam или null для использования ImageWriteParam по умолчанию.
Выбрасывает:
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.

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

abort

public void abort()
Запрашивает прерывание текущей операции записи. Содержимое выходного потока после прерывания будет неопределённым.

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

abortRequested

protected boolean abortRequested()
Возвращает true, если с момента создания writer или вызова clearAbortRequest поступил запрос на прерывание текущей операции записи.
Возвращает:
true, если текущую операцию записи следует прервать.
См. также:
  • abort()
  • clearAbortRequest()

clearAbortRequest

protected void clearAbortRequest()
Очищает все предыдущие запросы на прерывание. После вызова этого метода abortRequested вернёт false.
См. также:
  • abort()
  • abortRequested()

addIIOWriteWarningListener

public void addIIOWriteWarningListener(IIOWriteWarningListener listener)
Добавляет IIOWriteWarningListener в список зарегистрированных слушателей предупреждений. Если listener равно null, исключение не выбрасывается и никаких действий не выполняется. Сообщения, отправляемые указанному слушателю, по возможности локализуются в соответствии с текущим Locale. Если Locale не задан, writer может локализовать предупреждения по своему усмотрению.
Параметры:
listener — IIOWriteWarningListener, который нужно зарегистрировать.
См. также:
  • removeIIOWriteWarningListener(IIOWriteWarningListener)

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Удаляет IIOWriteWarningListener из списка зарегистрированных слушателей предупреждений. Если слушатель не был зарегистрирован ранее или listener равно null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOWriteWarningListener, регистрацию которого нужно отменить.
См. также:
  • addIIOWriteWarningListener(IIOWriteWarningListener)

removeAllIIOWriteWarningListeners

public void removeAllIIOWriteWarningListeners()
Удаляет все зарегистрированные в данный момент объекты IIOWriteWarningListener.

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

addIIOWriteProgressListener

public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
Добавляет IIOWriteProgressListener в список зарегистрированных слушателей хода выполнения. Если listener равно null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOWriteProgressListener, который нужно зарегистрировать.
См. также:
  • removeIIOWriteProgressListener(IIOWriteProgressListener)

removeIIOWriteProgressListener

public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
Удаляет IIOWriteProgressListener из списка зарегистрированных слушателей хода выполнения. Если слушатель не был зарегистрирован ранее или listener равно null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOWriteProgressListener, регистрацию которого нужно отменить.
См. также:
  • addIIOWriteProgressListener(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. В противном случае writer может продолжать неопределённо долго удерживать ресурсы.

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.desktop/javax/imageio/ImageWriter.html

Spec-Zone.ru

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