Spec-Zone.ru › OpenJDK 24

Класс 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)
Добавляет слушателя прогресса в список зарегистрированных слушателей.
void addIIOWriteWarningListener(IIOWriteWarningListener listener)
Добавляет слушателя предупреждений в список зарегистрированных слушателей.
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)
Удаляет слушателя прогресса из списка зарегистрированных слушателей.
void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Удаляет слушателя предупреждений из списка зарегистрированных слушателей.
void removeImage(int imageIndex)
Удаляет изображение из потока.
void replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
Заменяет метаданные изображения, связанные с существующим изображением.
void replacePixels(Raster raster, ImageWriteParam param)
Заменяет часть изображения, уже присутствующего в выводе, частью данного изображения Raster.
void replacePixels(RenderedImage image, ImageWriteParam param)
Заменяет часть изображения, уже присутствующего в выводе, частью заданного изображения.
void replaceStreamMetadata(IIOMetadata streamMetadata)
Заменяет метаданные потока в выводе новой информацией.
void reset()
Восстанавливает ImageWriter до начального состояния.
void setLocale(Locale locale)
Устанавливает текущее значение Locale этого ImageWriter.
void setOutput(Object output)
Устанавливает пункт назначения до заданного значения ImageOutputStream или другого Object.
void write(RenderedImage image)
Добавляет в вывод завершённый поток изображений, состоящий из одного изображения с метаданными и миниатюрами по умолчанию.
void write(IIOImage image)
Добавляет в вывод завершённый поток изображений, содержащий одно изображение с метаданными и миниатюрами по умолчанию.
abstract void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
Добавляет в вывод завершённый поток изображений, содержащий одно изображение и связанные с ним метаданные потока и изображения, а также миниатюры.
void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param)
Вставляет новое изображение в существующий поток изображений.
void writeToSequence(IIOImage image, ImageWriteParam param)
Добавляет в вывод одно изображение и, возможно, связанные с ним метаданные и миниатюры.

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

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

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

convertImageMetadata, convertStreamMetadata

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

originatingProvider

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

output

protected Object output
Назначение ImageOutputStream или другое Object, установленное методом setOutput и полученное методом getOutput. По умолчанию инициализируется значением null.

availableLocales

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

locale

protected Locale locale
Текущий Locale, используемый для локализации, или null, если он не задан. По умолчанию инициализируется значением null.

warningListeners

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

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 не пустой, но не является одним из значений, возвращаемых методом 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.

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

Если 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 для использования параметра записи по умолчанию.
Исключение:
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.

По умолчанию, если вывод является null, выбрасывается исключение IllegalStateException, в противном случае — исключение 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 без проверки границ индекса.

По умолчанию, если вывод является null, выбрасывается исключение IllegalStateException, в противном случае возвращает 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 содержат значения параметров по умолчанию, не поддерживаемые этим писателем (например, прогрессивное кодирование или любые параметры формата), они будут проигнорированы.

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

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

По умолчанию, если вывод является null, выбрасывается исключение IllegalStateException, в противном случае — исключение 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 без проверки границ индекса.

По умолчанию, если вывод является null, выбрасывается исключение IllegalStateException, в противном случае возвращает 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.

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

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

replacePixels

public void replacePixels(RenderedImage image, ImageWriteParam param) throws IOException
Заменяет часть изображения, уже присутствующего в выводе, частью данного изображения. Данные изображения должны соответствовать или быть преобразуемы к структуре расположения пикселей существующего изображения.

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

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

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

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

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

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

replacePixels

public void replacePixels(Raster raster, ImageWriteParam param) throws IOException
Заменяет часть изображения, уже присутствующего в выводе, частью данного Raster. Данные изображения должны соответствовать или быть преобразуемы к структуре расположения пикселей существующего изображения.

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

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

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

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

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

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

endReplacePixels

public void endReplacePixels() throws IOException
Завершает последовательность вызовов replacePixels.

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

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

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

abort

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

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

abortRequested

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

clearAbortRequest

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

addIIOWriteWarningListener

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

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Удаляет IIOWriteWarningListener из списка зарегистрированных слушателей предупреждений. Если слушатель не был зарегистрирован ранее, или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
Parameters:
listener - 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 - IIOWriteProgressListener для регистрации.
See Also:
  • removeIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeIIOWriteProgressListener

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

removeAllIIOWriteProgressListeners

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

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

processImageStarted

protected void processImageStarted(int imageIndex)
Транслирует начало записи изображения всем зарегистрированным IIOWriteProgressListener, вызывая их метод imageStarted. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
imageIndex - индекс изображения, которое будет записано.

processImageProgress

protected void processImageProgress(float percentageDone)
Транслирует текущий процент завершения изображения всем зарегистрированным IIOWriteProgressListener, вызывая их метод imageProgress. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
percentageDone - текущий процент завершения, в виде float.

processImageComplete

protected void processImageComplete()
Транслирует завершение записи изображения всем зарегистрированным IIOWriteProgressListener, вызывая их метод imageComplete. Подклассы могут использовать этот метод в качестве удобства.

processThumbnailStarted

protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)
Транслирует начало записи миниатюры всем зарегистрированным IIOWriteProgressListener, вызывая их метод thumbnailStarted. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
imageIndex - индекс изображения, связанного с миниатюрой.
thumbnailIndex - индекс миниатюры.

processThumbnailProgress

protected void processThumbnailProgress(float percentageDone)
Транслирует текущий процент завершения миниатюры всем зарегистрированным IIOWriteProgressListener, вызывая их метод thumbnailProgress. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
percentageDone - текущий процент завершения, в виде float.

processThumbnailComplete

protected void processThumbnailComplete()
Транслирует завершение записи миниатюры всем зарегистрированным IIOWriteProgressListener, вызывая их метод thumbnailComplete. Подклассы могут использовать этот метод в качестве удобства.

processWriteAborted

protected void processWriteAborted()
Транслирует, что запись была прервана, всем зарегистрированным IIOWriteProgressListener, вызывая их метод writeAborted. Подклассы могут использовать этот метод в качестве удобства.

processWarningOccurred

protected void processWarningOccurred(int imageIndex, String warning)
Транслирует сообщение об ошибке всем зарегистрированным IIOWriteWarningListener, вызывая их метод warningOccurred. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
imageIndex - индекс изображения, на котором произошла ошибка.
warning - сообщение об ошибке.
Исключения:
IllegalArgumentException - если warning является null.

processWarningOccurred

protected void processWarningOccurred(int imageIndex, String baseName, String keyword)
Транслирует локализованное сообщение об ошибке всем зарегистрированным IIOWriteWarningListener, вызывая их метод warningOccurred со строкой, взятой из ResourceBundle. Подклассы могут использовать этот метод в качестве удобства.
Параметры:
imageIndex - индекс изображения, на котором произошла ошибка.
baseName - базовое имя набора ResourceBundle, содержащего локализованные сообщения об ошибках.
keyword - ключевое слово, используемое для индексации сообщения об ошибке в наборе ResourceBundle.
Исключения:
IllegalArgumentException - если baseName является null.
IllegalArgumentException - если keyword является null.
IllegalArgumentException - если не удается найти соответствующее ResourceBundle.
IllegalArgumentException - если именованный ресурс не найден в найденном ResourceBundle.
IllegalArgumentException - если объект, полученный из ResourceBundle, не является String.

reset

public void reset()
Возвращает ImageWriter в исходное состояние.

Стандартная реализация вызывает setOutput(null), setLocale(null), removeAllIIOWriteWarningListeners(), removeAllIIOWriteProgressListeners() и clearAbortRequest.

dispose

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

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

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

© 1993, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/ImageWriter.html

Spec-Zone.ru

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