Spec-Zone.ru › OpenJDK 21

Класс 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
Список текущих зарегистрированных IIOWriteProgressListener, инициализированный по умолчанию null, что эквивалентно пустому списку List.
protected List<IIOWriteWarningListener> warningListeners
Список текущих зарегистрированных IIOWriteWarningListener, инициализированный по умолчанию null, что эквивалентно пустому списку List.
protected List<Locale> warningLocales
Список 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)
Добавляет одно изображение и, возможно, связанные с ним метаданные и миниатюры в выходные данные.

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

warningLocales

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

progressListeners

protected List<IIOWriteProgressListener> progressListeners
Коллекция текущих зарегистрированных IIOWriteProgressListener, инициализированная по умолчанию 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.

Returns:
объект ImageWriterSpi или null.
See Also:
  • 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 на соответствие набору классов, рекламируемому поставщиком услуг, если он есть.

Parameters:
output - ImageOutputStream или другое Object, используемые для будущей записи.
Throws:
IllegalArgumentException - если output не является экземпляром одного из классов, возвращённых методом getOutputTypes поставщика услуг.
See Also:
  • getOutput()

getOutput

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

Стандартная реализация возвращает значение переменной output.

Returns:
Object, указанное с помощью setOutput, или null.
See Also:
  • setOutput(java.lang.Object)

getAvailableLocales

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

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

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

setLocale

public void setLocale(Locale locale)
Устанавливает текущий Locale этого ImageWriter в заданное значение. Значение null удаляет любые предыдущие настройки и указывает, что писатель должен выполнить локализацию по своему усмотрению.

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

Parameters:
locale - желаемый Locale или null.
Throws:
IllegalArgumentException - если locale не равно null, но не является одним из значений, возвращённых getAvailableLocales.
See Also:
  • getLocale()

getLocale

public Locale getLocale()
Возвращает текущий установленный Locale или null, если не установлен.

Стандартная реализация возвращает значение переменной locale.

Returns:
текущий Locale или null.
See Also:
  • setLocale(java.util.Locale)

getDefaultWriteParam

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

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

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

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

getDefaultStreamMetadata

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

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

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

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

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

getDefaultImageMetadata

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

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

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

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

getNumThumbnailsSupported

public int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Возвращает количество миниатюр, поддерживаемых форматом, записываемым, с учетом типа изображения и дополнительных параметров записи и объектов метаданных, которые будут использованы во время кодирования. Значение -1 указывает, что недостаточно информации.

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

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

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

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

getPreferredThumbnailSizes

public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Возвращает массив Dimension, указывающий допустимые диапазоны размеров изображений-миниатюр при их кодировании в выходной файл или поток. Эта информация носит лишь рекомендательный характер; записыватель переформатирует любые предоставленные миниатюры по мере необходимости.

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

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

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

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

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

canWriteRasters

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

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

Returns:
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 содержит значения дополнительных настроек, не поддерживаемые этим записывателем (например, прогрессивную кодировку или любые настройки, специфичные для формата), они будут проигнорированы.

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

write

public void write(IIOImage image) throws IOException
Добавляет в выходной поток полный поток изображения, содержащий одно изображение с метаданными и миниатюрами по умолчанию. Этот метод является сокращением для write(null, image, null).
Parameters:
image - объект IIOImage, содержащий изображение, миниатюры и метаданные для записи.
Throws:
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).
Parameters:
image - RenderedImage, который будет записан.
Throws:
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.

Parameters:
imageIndex - индекс, по которому необходимо вставить изображение.
Returns:
true, если вставка изображения по данному индексу возможна.
Throws:
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.

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

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

removeImage

public void removeImage(int imageIndex) throws IOException
Удаляет изображение из потока.

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

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

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

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

canWriteEmpty

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

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

Returns:
true, если запись полного потока изображений с содержимым, которое будет определено позже, поддерживается.
Throws:
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.

Parameters:
streamMetadata - объект IIOMetadata, представляющий метаданные потока, или null для использования значений по умолчанию.
imageType - объект ImageTypeSpecifier, описывающий макет изображения.
width - ширина изображения.
height - высота изображения.
imageMetadata - объект IIOMetadata, представляющий метаданные изображения, или null.
thumbnails - список List миниатюр для этого изображения, или null.
param - объект ImageWriteParam или null для использования параметра записи по умолчанию.
Throws:
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.

Throws:
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.

Parameters:
imageIndex - индекс, в который будет вставлено изображение.
Returns:
true, если пустое изображение может быть вставлено в заданный индекс.
Throws:
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. Вызовы методов prepareReplacePixels, replacePixels и endReplacePixels могут быть выполнены между вызовами prepareInsertEmpty и endInsertEmpty. Однако вложенные вызовы prepareInsertEmpty не допускаются, а вызовы prepareWriteEmpty и prepareInsertEmpty не могут быть перемешаны.

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

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

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

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

Parameters:
imageIndex - индекс, в который будет записано изображение.
imageType - объект ImageTypeSpecifier, описывающий структуру изображения.
width - ширина изображения.
height - высота изображения.
imageMetadata - объект IIOMetadata, представляющий метаданные изображения, или null.
thumbnails - список List миниатюр для этого изображения, или null.
param - объект ImageWriteParam, или null для использования параметра записи по умолчанию.
Throws:
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 - a RenderedImage содержащий пиксели источника.
param - an 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 - a Raster содержащий пиксели источника.
param - an 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 - an IIOWriteWarningListener для регистрации.
See Also:
  • removeIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Удаляет IIOWriteWarningListener из списка зарегистрированных слушателей предупреждений. Если слушатель ранее не был зарегистрирован или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
Parameters:
listener - an IIOWriteWarningListener для удаления из списка.
See Also:
  • addIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeAllIIOWriteWarningListeners

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

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

addIIOWriteProgressListener

public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
Добавляет IIOWriteProgressListener в список зарегистрированных слушателей прогресса. Если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
Parameters:
listener - an IIOWriteProgressListener для регистрации.
See Also:
  • removeIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeIIOWriteProgressListener

public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
Удаляет IIOWriteProgressListener из списка зарегистрированных слушателей прогресса. Если слушатель ранее не был зарегистрирован или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
Parameters:
listener - an IIOWriteProgressListener для удаления из списка.
See Also:
  • addIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeAllIIOWriteProgressListeners

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

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

processImageStarted

protected void processImageStarted(int imageIndex)
Распространяет начало записи изображения всем зарегистрированным слушателям IIOWriteProgressListener, вызывая их метод imageStarted. Подклассы могут использовать этот метод для удобства.
Parameters:
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, 2023, 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/21/docs/api/java.desktop/javax/imageio/ImageWriter.html

Spec-Zone.ru

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