Класс 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 Массив |
protected Locale |
locale Текущий |
protected ImageWriterSpi |
originatingProvider
|
protected Object |
output
|
protected List<IIOWriteProgressListener> |
progressListeners Массив текущих зарегистрированных |
protected List<IIOWriteWarningListener> |
warningListeners Массив текущих зарегистрированных |
protected List<Locale> |
warningLocales Массив |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
ImageWriter(ImageWriterSpi originatingProvider) Создает |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
abort() Запрашивает прерывание текущей операции записи. |
protected boolean |
abortRequested() Возвращает |
void |
addIIOWriteProgressListener(IIOWriteProgressListener listener) Добавляет |
void |
addIIOWriteWarningListener(IIOWriteWarningListener listener) Добавляет |
boolean |
canInsertEmpty(int imageIndex) Возвращает |
boolean |
canInsertImage(int imageIndex) Возвращает |
boolean |
canRemoveImage(int imageIndex) Возвращает |
boolean |
canReplaceImageMetadata(int imageIndex) Возвращает |
boolean |
canReplacePixels(int imageIndex) Возвращает |
boolean |
canReplaceStreamMetadata() Возвращает |
boolean |
canWriteEmpty() Возвращает |
boolean |
canWriteRasters() Возвращает |
boolean |
canWriteSequence() Возвращает |
protected void |
clearAbortRequest() Очищает предыдущий запрос на отмену. |
abstract IIOMetadata |
convertImageMetadata(IIOMetadata inData,
ImageTypeSpecifier imageType,
ImageWriteParam param) Возвращает объект |
abstract IIOMetadata |
convertStreamMetadata(IIOMetadata inData,
ImageWriteParam param) Возвращает объект |
void |
dispose() Разрешает освободить все ресурсы, удерживаемые этим объектом. |
void |
endInsertEmpty() Завершает вставку нового изображения, начатую предыдущим вызовом |
void |
endReplacePixels() Завершает последовательность вызовов |
void |
endWriteEmpty() Завершает запись нового изображения, начатую предыдущим вызовом |
void |
endWriteSequence() Завершает запись последовательности изображений, начатую вызовом |
Locale[] |
getAvailableLocales() Возвращает массив |
abstract IIOMetadata |
getDefaultImageMetadata(ImageTypeSpecifier imageType,
ImageWriteParam param) Возвращает объект |
abstract IIOMetadata |
getDefaultStreamMetadata(ImageWriteParam param) Возвращает объект |
ImageWriteParam |
getDefaultWriteParam() Возвращает новый объект |
Locale |
getLocale() Возвращает текущее значение |
int |
getNumThumbnailsSupported(ImageTypeSpecifier imageType,
ImageWriteParam param,
IIOMetadata streamMetadata,
IIOMetadata imageMetadata) Возвращает количество миниатюр, поддерживаемое форматом, который записывается, учитывая тип изображения и любые дополнительные параметры записи и объекты метаданных, которые будут использованы во время кодирования. |
ImageWriterSpi |
getOriginatingProvider() Возвращает объект |
Object |
getOutput() Возвращает значение |
Dimension[] |
getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
ImageWriteParam param,
IIOMetadata streamMetadata,
IIOMetadata imageMetadata) Возвращает массив |
void |
prepareInsertEmpty(int imageIndex,
ImageTypeSpecifier imageType,
int width,
int height,
IIOMetadata imageMetadata,
List<? extends BufferedImage> thumbnails,
ImageWriteParam param) Начинает вставку нового изображения с неопределёнными значениями пикселей в существующий поток изображений. |
void |
prepareReplacePixels(int imageIndex,
Rectangle region) Подготавливает писателя к обработке серии вызовов методов |
void |
prepareWriteEmpty(IIOMetadata streamMetadata,
ImageTypeSpecifier imageType,
int width,
int height,
IIOMetadata imageMetadata,
List<? extends BufferedImage> thumbnails,
ImageWriteParam param) Начинает запись полного потока изображений, состоящего из одного изображения с неопределёнными значениями пикселей и связанными метаданными и миниатюрами, в выходной поток. |
void |
prepareWriteSequence(IIOMetadata streamMetadata) Подготавливает поток к приёму ряда последующих вызовов |
protected void |
processImageComplete() Передает завершение записи изображения всем зарегистрированным |
protected void |
processImageProgress(float percentageDone) Передает текущий процент завершения изображения всем зарегистрированным |
protected void |
processImageStarted(int imageIndex) Передает начало записи изображения всем зарегистрированным |
protected void |
processThumbnailComplete() Передает завершение записи миниатюры всем зарегистрированным |
protected void |
processThumbnailProgress(float percentageDone) Передает текущий процент завершения миниатюры всем зарегистрированным |
protected void |
processThumbnailStarted(int imageIndex,
int thumbnailIndex) Передает начало записи миниатюры всем зарегистрированным |
protected void |
processWarningOccurred(int imageIndex,
String warning) Передает сообщение об ошибке всем зарегистрированным |
protected void |
processWarningOccurred(int imageIndex,
String baseName,
String keyword) Передает локализованное сообщение об ошибке всем зарегистрированным |
protected void |
processWriteAborted() Передает информацию о прерывании записи всем зарегистрированным |
void |
removeAllIIOWriteProgressListeners() Удаляет все текущие зарегистрированные объекты |
void |
removeAllIIOWriteWarningListeners() Удаляет все текущие зарегистрированные объекты |
void |
removeIIOWriteProgressListener(IIOWriteProgressListener listener) Удаляет |
void |
removeIIOWriteWarningListener(IIOWriteWarningListener listener) Удаляет |
void |
removeImage(int imageIndex) Удаляет изображение из потока. |
void |
replaceImageMetadata(int imageIndex,
IIOMetadata imageMetadata) Заменяет метаданные изображения, связанные с существующим изображением. |
void |
replacePixels(Raster raster,
ImageWriteParam param) Заменяет часть изображения, уже присутствующего в выводе, частью данного |
void |
replacePixels(RenderedImage image,
ImageWriteParam param) Заменяет часть изображения, уже присутствующего в выводе, частью данного изображения. |
void |
replaceStreamMetadata(IIOMetadata streamMetadata) Заменяет метаданные потока в выводе новой информацией. |
void |
reset() Восстанавливает |
void |
setLocale(Locale locale) Устанавливает текущее значение |
void |
setOutput(Object output) Устанавливает пункт назначения до заданного |
void |
write(IIOImage image) Добавляет полный поток изображений, содержащий одно изображение с метаданными по умолчанию и миниатюрами, в выходной поток. |
abstract void |
write(IIOMetadata streamMetadata,
IIOImage image,
ImageWriteParam param) Добавляет полный поток изображений, содержащий одно изображение и связанные метаданные потока и изображения, а также миниатюры, в выходной поток. |
void |
writeInsert(int imageIndex,
IIOImage image,
ImageWriteParam param) Добавляет в выходной поток полный поток изображений, состоящий из одного изображения с метаданными по умолчанию и миниатюрами. |
abstract void |
write(IIOMetadata streamMetadata,
IIOImage image,
ImageWriteParam param) Вставляет новое изображение в существующий поток изображений. |
void |
writeToSequence(IIOImage image,
ImageWriteParam param) Добавляет одно изображение и, возможно, связанные с ним метаданные и миниатюры в выходной поток. |
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
originatingProvider
protected ImageWriterSpi originatingProvider
Объект ImageWriterSpi, который создал этот объект, или null, если его идентификатор неизвестен или отсутствует. По умолчанию инициализируется значением null.
output
protected Object output
ImageOutputStream или другой Object, устанавливаемый setOutput и извлекаемый getOutput. По умолчанию инициализируется значением null.
availableLocales
protected Locale[] availableLocales
Массив Locale, которые могут быть использованы для локализации предупреждающих сообщений и значений параметров сжатия, или null, если локализация не поддерживается. По умолчанию инициализируется значением null.
locale
protected Locale locale
Текущая Locale, которая будет использоваться для локализации, или null, если она не установлена. По умолчанию инициализируется значением null.
warningListeners
protected List<IIOWriteWarningListener> warningListeners
List текущих зарегистрированных IIOWriteWarningListener, инициализированный по умолчанию значением null, что эквивалентно пустому List.
warningLocales
protected List<Locale> warningLocales
List Locale, по одному для каждого элемента warningListeners, инициализированный по умолчанию null, что эквивалентно пустому List.
progressListeners
protected List<IIOWriteProgressListener> progressListeners
List текущих зарегистрированных IIOWriteProgressListener, инициализированный по умолчанию null, что эквивалентно пустому List.
Конструкторы
ImageWriter
protected ImageWriter(ImageWriterSpi originatingProvider)
Создает объект ImageWriter и устанавливает его переменную экземпляра originatingProvider в предоставленное значение.
Подклассы, использующие расширения, должны предоставлять конструктор с сигнатурой (ImageWriterSpi,
Object), чтобы получить объект расширения. Если объект расширения не подходит, должно быть выброшено исключение IllegalArgumentException.
- Параметры:
-
originatingProvider-ImageWriterSpi, который создает этот объект, илиnull.
Методы
getOriginatingProvider
public ImageWriterSpi getOriginatingProvider()
Возвращает объект ImageWriterSpi, который создал этот ImageWriter, или null, если этот объект не был создан через IIORegistry.
Реализация по умолчанию возвращает значение переменной экземпляра originatingProvider.
- Возвращает:
- объект
ImageWriterSpi, илиnull. - См. также:
ImageWriterSpi
setOutput
public void setOutput(Object output)
Устанавливает назначение для данного ImageOutputStream или другого Object. Предполагается, что назначение готово к принятию данных и не будет закрыто в конце каждой записи. Это позволяет распределенным приложениям обработки изображений передавать серию изображений по одному сетевому соединению. Если output равно null, любой текущий выход будет удален.
Если output является ImageOutputStream, вызовы методов write, writeToSequence и prepareWriteEmpty/endWriteEmpty сохранят существующее содержимое потока. Другие методы записи, такие как writeInsert, replaceStreamMetadata, replaceImageMetadata, replacePixels, prepareInsertEmpty/endInsertEmpty и endWriteSequence, требуют, чтобы полное содержимое потока было доступно для чтения и записи, и могут изменить любую часть потока.
Использование общего Object, отличного от ImageOutputStream, предназначено для записывающих устройств, которые взаимодействуют непосредственно с выходным устройством или протоколом обработки изображений. Набор допустимых классов объявляется методом getOutputTypes поставщика услуг записывающего устройства; большинство записывающих устройств вернут одномерный массив, содержащий только ImageOutputStream.class, чтобы указать, что они принимают только ImageOutputStream.
Реализация по умолчанию устанавливает переменную экземпляра output в значение output после проверки output на соответствие набору классов, объявленных исходным поставщиком услуг, если таковой имеется.
- Параметры:
-
output-ImageOutputStreamили другойObject, который будет использоваться для будущей записи. - Исключения:
-
IllegalArgumentException- еслиoutputне является экземпляром одного из классов, возвращаемых методомgetOutputTypesисходного поставщика услуг. - См. также:
getOutput()
getOutput
public Object getOutput()
Возвращает ImageOutputStream или другой Object, установленный последним вызовом метода setOutput. Если назначение не установлено, возвращается null.
Реализация по умолчанию возвращает значение переменной экземпляра output.
- Возвращает:
Object, указанный с помощьюsetOutput, илиnull.- См. также:
setOutput(java.lang.Object)
getAvailableLocales
public Locale[] getAvailableLocales()
Возвращает массив Locale, которые могут быть использованы для локализации прослушивателей предупреждений и параметров сжатия. Значение возврата null указывает на то, что локализация не поддерживается.
Реализация по умолчанию возвращает клон переменной экземпляра availableLocales, если она не null, в противном случае возвращается null.
- Возвращает:
- массив
Locale, которые могут быть использованы в качестве аргументов дляsetLocale, илиnull.
setLocale
public void setLocale(Locale locale)
Устанавливает текущую Locale этого ImageWriter в заданное значение. Значение null удаляет все предыдущие настройки и указывает, что записывающее устройство должно выполнять локализацию по своему усмотрению.
Реализация по умолчанию проверяет locale на соответствие значениям, возвращаемым getAvailableLocales, и устанавливает переменную экземпляра locale, если она найдена. Если locale равно null, переменная экземпляра устанавливается в null без проверки.
- Параметры:
-
locale- требуемаяLocale, илиnull. - Исключения:
-
IllegalArgumentException- еслиlocaleнеnull, но не является одним из значений, возвращаемыхgetAvailableLocales. - См. также:
getLocale()
getLocale
public Locale getLocale()
Возвращает текущую установленную Locale, или null, если она не установлена.
Реализация по умолчанию возвращает значение переменной экземпляра locale.
- Возвращает:
- текущая
Locale, илиnull. - См. также:
setLocale(java.util.Locale)
getDefaultWriteParam
public ImageWriteParam getDefaultWriteParam()
Возвращает новый объект ImageWriteParam соответствующего типа для этого формата файла, содержащий значения по умолчанию, то есть те значения, которые будут использоваться, если объект ImageWriteParam не указан. Это полезно в качестве отправной точки для настройки лишь нескольких параметров и оставления остальных настроек по умолчанию.
Реализация по умолчанию создает и возвращает новый объект ImageWriteParam, который не допускает использование мозаики, прогрессивного кодирования или сжатия, и который будет локализован для текущей Locale (т.е., то, что вы получите, вызвав new
ImageWriteParam(getLocale())).
Отдельные подключаемые модули могут возвращать экземпляр ImageWriteParam с включенными дополнительными необязательными функциями, или они могут возвращать экземпляр подкласса ImageWriteParam, специфичного для подключаемого модуля.
- Возвращает:
- новый объект
ImageWriteParam, содержащий значения по умолчанию.
getDefaultStreamMetadata
public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
Возвращает объект IIOMetadata, содержащий значения по умолчанию для кодирования потока изображений. Содержимое объекта может быть изменено с помощью структуры XML-дерева, возвращаемого методом IIOMetadata.getAsTree, объекта IIOMetadataController или через интерфейсы, специфичные для подключаемых модулей, а полученные данные передаются одному из методов write, которые принимают параметр метаданных потока.
Необязательный ImageWriteParam может быть предоставлен для случаев, когда он может повлиять на структуру метаданных потока.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, не поддерживаемые этим записывающим устройством (например, прогрессивное кодирование или любые параметры, специфичные для формата), они будут игнорироваться.
Записывающие устройства, которые не используют метаданные потока (например, записывающие устройства для форматов с одним изображением), должны возвращать null.
- Параметры:
-
param-ImageWriteParam, который будет использоваться для кодирования изображения, илиnull. - Возвращает:
- объект
IIOMetadata.
getDefaultImageMetadata
public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType,
ImageWriteParam param) Возвращает объект IIOMetadata, содержащий значения по умолчанию для кодирования изображения данного типа. Содержимое объекта может быть изменено с помощью структуры XML-дерева, возвращаемого методом IIOMetadata.getAsTree, объекта IIOMetadataController или через интерфейсы, специфичные для подключаемых модулей, а полученные данные передаются одному из методов write, которые принимают параметр метаданных потока.
Необязательный ImageWriteParam может быть предоставлен для случаев, когда он может повлиять на структуру метаданных изображения.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, не поддерживаемые этим записывающим устройством (например, прогрессивное кодирование или любые параметры, специфичные для формата), они будут игнорироваться.
- Параметры:
-
imageType- форматImageTypeSpecifierизображения, которое будет записано позже. -
param-ImageWriteParamдля кодирования изображения илиnull. - Возвращает:
- объект
IIOMetadata.
convertStreamMetadata
public abstract IIOMetadata convertStreamMetadata(IIOMetadata inData,
ImageWriteParam param) Описание скопировано из интерфейса: ImageTranscoder
Возвращает объект IIOMetadata, который можно использовать для кодирования и, при необходимости, изменять с помощью его интерфейсов документов или других интерфейсов, специфичных для плагина-записьщика, который будет использован для кодирования.
В случаях, когда это может повлиять на структуру метаданных потока, можно указать необязательный ImageWriteParam.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, которые не понимаются этим записьщиком или транскодером, они будут проигнорированы.
- Определено в:
-
convertStreamMetadataв интерфейсеImageTranscoder - Параметры:
-
inData- объектIIOMetadata, представляющий метаданные потока, используемый для инициализации состояния возвращаемого объекта. -
param-ImageWriteParamдля кодирования изображения илиnull. - Возвращает:
- объект
IIOMetadataилиnull, если плагин не предоставляет возможности кодирования метаданных.
convertImageMetadata
public abstract IIOMetadata convertImageMetadata(IIOMetadata inData,
ImageTypeSpecifier imageType,
ImageWriteParam param) Описание скопировано из интерфейса: ImageTranscoder
Возвращает объект IIOMetadata, который можно использовать для кодирования и, при необходимости, изменять с помощью его интерфейсов документов или других интерфейсов, специфичных для плагина-записьщика, который будет использован для кодирования.
В случаях, когда это может повлиять на структуру метаданных изображения, можно указать необязательный ImageWriteParam.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, которые не понимаются этим записьщиком или транскодером, они будут проигнорированы.
- Определено в:
-
convertImageMetadataв интерфейсеImageTranscoder - Параметры:
-
inData- объектIIOMetadata, представляющий метаданные изображения, используемый для инициализации состояния возвращаемого объекта. -
imageType-ImageTypeSpecifier, определяющий макет и информацию о цвете изображения, с которым будут связаны метаданные. -
param-ImageWriteParamдля кодирования изображения илиnull. - Возвращает:
- объект
IIOMetadataилиnull, если плагин не предоставляет возможности кодирования метаданных.
getNumThumbnailsSupported
public int getNumThumbnailsSupported(ImageTypeSpecifier imageType,
ImageWriteParam param,
IIOMetadata streamMetadata,
IIOMetadata imageMetadata) Возвращает количество миниатюр, поддерживаемых форматом, который записывается, с учетом типа изображения и дополнительных параметров записи и объектов метаданных, которые будут использоваться при кодировании. Значение -1 указывает на то, что недостаточно информации.
Необязательно можно указать ImageWriteParam для случаев, когда это может повлиять на обработку миниатюр.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, которые не поддерживаются этим записьщиком (например, прогрессивное кодирование или параметры, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию возвращает 0.
- Параметры:
-
imageType-ImageTypeSpecifierтипа записываемого изображения илиnull. -
param-ImageWriteParamдля записи илиnull. -
streamMetadata- объектIIOMetadataдля записи илиnull. -
imageMetadata- объектIIOMetadataдля записи илиnull. - Возвращает:
- количество миниатюр, которые можно записать, с учетом предоставленных параметров, или
-1если информации недостаточно.
getPreferredThumbnailSizes
public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
ImageWriteParam param,
IIOMetadata streamMetadata,
IIOMetadata imageMetadata) Возвращает массив Dimensions, указывающий допустимые диапазоны размеров миниатюр изображений в выходном файле или потоке. Эта информация является лишь рекомендательной; записьщик переформатирует любые предоставленные миниатюры по необходимости.
Информация возвращается как набор пар; первый элемент пары содержит минимальную ширину и высоту (включительно), а второй — максимальную ширину и высоту (включительно). Вместе каждая пара определяет допустимый диапазон размеров. Для указания фиксированного размера одинаковая ширина и высота будут указаны для обоих элементов. Возвращаемое значение null указывает, что размер произвольный или неизвестен.
Необязательно можно указать ImageWriteParam для случаев, когда это может повлиять на обработку миниатюр.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, которые не поддерживаются этим записьщиком (например, прогрессивное кодирование или параметры, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию возвращает null.
- Параметры:
-
imageType-ImageTypeSpecifierтипа записываемого изображения илиnull. -
param-ImageWriteParamдля записи илиnull. -
streamMetadata- объектIIOMetadataдля записи илиnull. -
imageMetadata- объектIIOMetadataдля записи илиnull. - Возвращает:
- массив
Dimensionс чётной длиной не менее двух илиnull.
canWriteRasters
public boolean canWriteRasters()
Возвращает true если методы, принимающие параметр IIOImage, способны обрабатывать изображение-источник типа Raster (в отличие от RenderedImage). Если этот метод возвращает false, то эти методы будут выбрасывать UnsupportedOperationException, если им будет передан IIOImage, содержащий Raster.
Реализация по умолчанию возвращает false.
- Возвращает:
-
trueесли источникиRasterподдерживаются.
write
public abstract void write(IIOMetadata streamMetadata,
IIOImage image,
ImageWriteParam param)
throws IOException Добавляет в выходной поток полный поток изображения, содержащий одно изображение и связанные метаданные потока и изображения, а также миниатюры. Включается вся необходимая заголовочная информация. Если вывод — ImageOutputStream, его содержимое до текущей позиции поиска не затрагивается и не должно быть читаемым или записываемым.
Вывод должен быть задан предварительно с помощью метода setOutput.
Метаданные потока можно указать необязательно; если они null, будут использоваться стандартные метаданные потока.
Если canWriteRasters возвращает true, IIOImage может содержать источник Raster. В противном случае, он должен содержать источник RenderedImage.
Предоставленные миниатюры будут изменены по необходимости, а любые миниатюры, превышающие поддерживаемое количество, будут проигнорированы. Если формат требует дополнительных миниатюр, которые не предоставлены, записьщик должен сгенерировать их внутри.
Необязательно можно указать ImageWriteParam для управления процессом записи. Если param — null, будет использоваться стандартный параметр записи.
Если предоставленный ImageWriteParam содержит значения необязательных параметров, которые не поддерживаются этим записьщиком (например, прогрессивное кодирование или параметры, специфичные для формата), они будут проигнорированы.
- Параметры:
-
streamMetadata- объектIIOMetadata, представляющий метаданные потока, илиnullдля использования стандартных значений. -
image- объектIIOImage, содержащий изображение, миниатюры и метаданные для записи. -
param-ImageWriteParam, илиnullдля использования стандартногоImageWriteParam. - Исключения:
-
IllegalStateException- если выходной поток не задан. -
UnsupportedOperationException- еслиimageсодержит источникRasterиcanWriteRastersвозвращаетfalse. -
IllegalArgumentException- еслиimage—null. -
IOException- если при записи произошла ошибка.
write
public void write(IIOImage image)
throws IOException Добавляет в выходной поток полный поток изображения, содержащий одно изображение со стандартными метаданными и миниатюрами. Этот метод является сокращенной формой write(null, image, null).
- Параметры:
-
image- объектIIOImage, содержащий изображение, миниатюры и метаданные для записи. - Исключения:
-
IllegalStateException- если выходной поток не задан. -
IllegalArgumentException- еслиimage—null. -
UnsupportedOperationException- еслиimageсодержит источникRasterиcanWriteRastersвозвращаетfalse. -
IOException- если при записи произошла ошибка.
write
public void write(RenderedImage image)
throws IOException Добавляет в выходной поток полный поток изображения, состоящий из одного изображения со стандартными метаданными и миниатюрами. Этот метод является сокращенной формой write(null, new IIOImage(image,
null, null), null).
- Параметры:
-
image-RenderedImageдля записи. - Исключения:
-
IllegalStateException- если выходной поток не задан. -
IllegalArgumentException- еслиimage—null. -
IOException- если при записи произошла ошибка.
canWriteSequence
public boolean canWriteSequence()
Возвращает true если записыватель способен добавить изображение к потоку изображений, который уже содержит заголовок и, возможно, предыдущие изображения.
Если canWriteSequence возвращает false, writeToSequence и endWriteSequence выбросят исключение UnsupportedOperationException.
Реализация по умолчанию возвращает false.
- Возвращает:
-
trueесли изображения могут быть добавлены последовательно.
prepareWriteSequence
public void prepareWriteSequence(IIOMetadata streamMetadata)
throws IOException Подготавливает поток для приема серии последующих вызовов writeToSequence, используя предоставленный объект метаданных потока. Метаданные будут записаны в поток, если они должны предшествовать данным изображения. Если аргумент равен null, используются метаданные потока по умолчанию.
Если выходной поток является ImageOutputStream, существующее содержимое выходного потока до текущей позиции поиска очищается, и оно не должно быть читаемым или записываемым. Если формат требует, чтобы endWriteSequence смог перемотать поток для исправления заголовка, например, для последовательности изображений в одном файле TIFF, то метаданные, записанные этим методом, должны оставаться в записываемой части потока. Другие форматы могут очистить поток после этого метода и после каждого изображения.
Если canWriteSequence возвращает false, этот метод выбросит исключение UnsupportedOperationException.
Выходной поток должен быть установлен предварительно с использованием метода setOutput.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае выбросит исключение UnsupportedOperationException.
- Параметры:
-
streamMetadata- объект метаданных потока илиnull. - Исключения:
-
IllegalStateException- если выходной поток не был установлен. -
UnsupportedOperationException- еслиcanWriteSequenceвозвращаетfalse. -
IOException- если произошла ошибка при записи метаданных потока.
writeToSequence
public void writeToSequence(IIOImage image,
ImageWriteParam param)
throws IOException Добавляет одно изображение, а также связанные метаданные и миниатюры в выходной поток. Если выходной поток является ImageOutputStream, существующее содержимое выходного потока до текущей позиции поиска может быть очищено и не должно быть читаемым или записываемым, если плагин не должен быть способен исправить заголовок при вызове endWriteSequence (например TIFF).
Если canWriteSequence возвращает false, этот метод выбросит исключение UnsupportedOperationException.
Выходной поток должен быть установлен предварительно с использованием метода setOutput.
Метод prepareWriteSequence должен быть вызван предварительно, в противном случае будет выброшено исключение IllegalStateException.
Если canWriteRasters возвращает true, IIOImage может содержать Raster источник. В противном случае он должен содержать RenderedImage источник.
Предоставленные миниатюры будут изменены в размерах при необходимости, и любые миниатюры, превышающие поддерживаемое количество, будут проигнорированы. Если формат требует дополнительных миниатюр, которые не предоставлены, записыватель сгенерирует их внутри.
Опционально может быть предоставлен ImageWriteParam, чтобы контролировать процесс записи. Если param имеет значение null, будет использоваться параметр записи по умолчанию.
Если предоставленный ImageWriteParam содержит значения дополнительных настроек, которые не поддерживаются этим записывателем (например, прогрессивное кодирование или любые настройки специфичные для формата), они будут проигнорированы.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае выбросит исключение UnsupportedOperationException.
- Параметры:
-
image- объектIIOImage, содержащий изображение, миниатюры и метаданные для записи. -
param- объектImageWriteParam, илиnullдля использования параметра записи по умолчанию. - Исключения:
-
IllegalStateException- если выходной поток не был установлен илиprepareWriteSequenceне был вызван. -
UnsupportedOperationException- еслиcanWriteSequenceвозвращаетfalse. -
IllegalArgumentException- еслиimageимеет значениеnull. -
UnsupportedOperationException- еслиimageсодержитRasterиcanWriteRastersвозвращаетfalse. -
IOException- если произошла ошибка при записи.
endWriteSequence
public void endWriteSequence()
throws IOException Завершает запись последовательности изображений, начатой с prepareWriteSequence. Любые метаданные потока, которые должны быть записаны в конце последовательности изображений, записываются, а любая информация о заголовке в начале последовательности исправляется при необходимости. Если выходной поток является ImageOutputStream, данные до метаданных потока в конце последовательности очищаются и не должны быть читаемыми или записываемыми.
Если canWriteSequence возвращает false, этот метод выбросит исключение UnsupportedOperationException.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае выбросит исключение UnsupportedOperationException.
- Исключения:
-
IllegalStateException- если выходной поток не был установлен илиprepareWriteSequenceне был вызван. -
UnsupportedOperationException- еслиcanWriteSequenceвозвращаетfalse. -
IOException- если произошла ошибка при записи.
canReplaceStreamMetadata
public boolean canReplaceStreamMetadata()
throws IOException Возвращает true если возможно заменить метаданные потока, уже присутствующие в выходе.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае вернет false.
- Возвращает:
-
trueесли замена метаданных потока разрешена. - Исключения:
-
IllegalStateException- если выходной поток не был установлен. -
IOException- если произошла ошибка ввода-вывода во время запроса.
replaceStreamMetadata
public void replaceStreamMetadata(IIOMetadata streamMetadata)
throws IOException Заменяет метаданные потока в выходе новой информацией. Если выходной поток является ImageOutputStream, предыдущее содержимое потока исследуется и, возможно, редактируется, чтобы освободить место для новых данных. Все предыдущее содержимое выходного потока должно быть доступно для чтения и записи.
Если canReplaceStreamMetadata возвращает false, будет выброшено исключение UnsupportedOperationException.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае выбросит исключение UnsupportedOperationException.
- Параметры:
-
streamMetadata- объектIIOMetadata, представляющий метаданные потока, илиnullдля использования значений по умолчанию. - Исключения:
-
IllegalStateException- если выходной поток не был установлен. -
UnsupportedOperationException- еслиcanReplaceStreamMetadataвозвращаетfalse. режимы не включают -
IOException- если произошла ошибка при записи.
canReplaceImageMetadata
public boolean canReplaceImageMetadata(int imageIndex)
throws IOException Возвращает true если возможно заменить метаданные изображения, связанные с существующим изображением с индексом imageIndex. Если этот метод возвращает false, вызов replaceImageMetadata(imageIndex) выбросит исключение UnsupportedOperationException.
Записыватель, не поддерживающий замену метаданных изображения, может вернуть false без проверки границ по индексу.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае вернет false без проверки значения imageIndex.
- Параметры:
-
imageIndex- индекс изображения, метаданные которого должны быть заменены. - Возвращает:
-
trueесли метаданные изображения данного изображения могут быть заменены. - Исключения:
-
IllegalStateException- если выходной поток не был установлен. -
IndexOutOfBoundsException- если записыватель поддерживает замену метаданных изображения в общем случае, ноimageIndexменьше 0 или больше максимального доступного индекса. -
IOException- если произошла ошибка ввода-вывода во время запроса.
replaceImageMetadata
public void replaceImageMetadata(int imageIndex,
IIOMetadata imageMetadata)
throws IOException Заменяет метаданные изображения, связанные с существующим изображением.
Если canReplaceImageMetadata(imageIndex) возвращает false, будет выброшено исключение UnsupportedOperationException.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае выбросит исключение UnsupportedOperationException.
- Параметры:
-
imageIndex- индекс изображения, метаданные которого должны быть заменены. -
imageMetadata- объектIIOMetadata, представляющий метаданные изображения, илиnull. - Исключения:
-
IllegalStateException- если выходной поток не был установлен. -
UnsupportedOperationException- еслиcanReplaceImageMetadataвозвращаетfalse. -
IndexOutOfBoundsException- еслиimageIndexменьше 0 или больше максимального доступного индекса. -
IOException- если произошла ошибка при записи.
canInsertImage
public boolean canInsertImage(int imageIndex)
throws IOException Возвращает true если записыватель поддерживает вставку нового изображения по указанному индексу. Существующие изображения с индексами, большими или равными индексу вставки, будут иметь свои индексы увеличены на 1. Значение для imageIndex равно -1 может быть использовано для обозначения индекса, на единицу больше текущего максимального индекса.
Записыватель, не поддерживающий вставку изображения, может вернуть false без проверки границ по индексу.
Реализация по умолчанию выбросит исключение IllegalStateException, если выходной поток является null, и в противном случае вернет false без проверки значения imageIndex.
- Параметры:
-
imageIndex- индекс, на котором необходимо вставить изображение. - Возвращает:
-
true, если изображение можно вставить по заданному индексу. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
IndexOutOfBoundsException- если записыватель поддерживает вставку изображений в целом, ноimageIndexменьше -1 или больше наибольшего доступного индекса. -
IOException- если при запросе произошла ошибка ввода-вывода.
writeInsert
public void writeInsert(int imageIndex,
IIOImage image,
ImageWriteParam param)
throws IOException Вставляет новое изображение в существующий поток изображений. Существующие изображения с индексом больше imageIndex сохраняются, и их индексы увеличиваются на 1. Значение imageIndex равное -1 может быть использовано для обозначения индекса, на единицу больше предыдущего максимального индекса; это приведет к логическому добавлению изображения в конец последовательности. Если выходной поток является ImageOutputStream, то весь поток должен быть как читаемым, так и записываемым.
Если canInsertImage(imageIndex) возвращает false, будет выброшено исключение UnsupportedOperationException.
Параметр ImageWriteParam (ImageWriteParam) может быть необязательно предоставлен для управления процессом записи. Если param равно null, будет использован параметр записи по умолчанию.
Если предоставленный ImageWriteParam содержит значения дополнительных настроек, не поддерживаемые этим записывателем (например, прогрессивное кодирование или любые настройки, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
imageIndex- индекс, на котором следует записать изображение. -
image- объектIIOImage, содержащий изображение, миниатюры и метаданные, которые необходимо записать. -
param- объектImageWriteParam, илиnullдля использования параметра записи по умолчанию. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
UnsupportedOperationException- еслиcanInsertImage(imageIndex)возвращаетfalse. -
IllegalArgumentException- еслиimageравноnull. -
IndexOutOfBoundsException- еслиimageIndexменьше -1 или больше наибольшего доступного индекса. -
UnsupportedOperationException- еслиimageсодержитRaster, аcanWriteRastersвозвращаетfalse. -
IOException- если произошла ошибка во время записи.
canRemoveImage
public boolean canRemoveImage(int imageIndex)
throws IOException Возвращает true, если записыватель поддерживает удаление существующего изображения по заданному индексу. Существующие изображения с индексами, большими чем индекс вставки, будут иметь свои индексы уменьшены на 1.
Записыватель, не поддерживающий удаления изображений, может вернуть false без проверки границ индекса.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае возвращает false без проверки значения imageIndex.
- Параметры:
-
imageIndex- индекс изображения, подлежащего удалению. - Возвращает:
-
true, если удаление данного изображения возможно. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
IndexOutOfBoundsException- если записыватель поддерживает удаление изображений в целом, ноimageIndexменьше 0 или больше наибольшего доступного индекса. -
IOException- если при запросе произошла ошибка ввода-вывода.
removeImage
public void removeImage(int imageIndex)
throws IOException Удаляет изображение из потока.
Если canRemoveImage(imageIndex) возвращает false, будет выброшено исключение UnsupportedOperationException.
Удаление может или не может привести к уменьшению фактического размера файла.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
imageIndex- индекс изображения, подлежащего удалению. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
UnsupportedOperationException- еслиcanRemoveImage(imageIndex)возвращаетfalse. -
IndexOutOfBoundsException- еслиimageIndexменьше 0 или больше наибольшего доступного индекса. -
IOException- если при удалении произошла ошибка ввода-вывода.
canWriteEmpty
public boolean canWriteEmpty()
throws IOException Возвращает true, если записыватель поддерживает запись полного потока изображений, состоящего из одного изображения с неопределенными значениями пикселей и связанными метаданными и миниатюрами, в выходной поток. Значения пикселей могут быть определены в последующих вызовах методов replacePixels. Если выходной поток является ImageOutputStream, его существующее содержимое до текущей позиции поиска не изменяется и не должно быть читаемым или записываемым.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае возвращает false.
- Возвращает:
-
true, если запись полного потока изображений с содержимым, подлежащим определению позже, поддерживается. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
IOException- если при запросе произошла ошибка ввода-вывода.
prepareWriteEmpty
public void prepareWriteEmpty(IIOMetadata streamMetadata,
ImageTypeSpecifier imageType,
int width,
int height,
IIOMetadata imageMetadata,
List<? extends BufferedImage> thumbnails,
ImageWriteParam param)
throws IOException Начинает запись полного потока изображений, состоящего из одного изображения с неопределенными значениями пикселей и связанными метаданными и миниатюрами, в выходной поток. Значения пикселей будут определены в последующих вызовах методов replacePixels. Если выходной поток является ImageOutputStream, его существующее содержимое до текущей позиции поиска не изменяется и не должно быть читаемым или записываемым.
Запись не завершается до вызова endWriteEmpty. Вызовы prepareReplacePixels, replacePixels, и endReplacePixels могут быть выполнены между вызовами prepareWriteEmpty и endWriteEmpty. Однако, вызовы prepareWriteEmpty не могут быть вложенными, а вызовы prepareWriteEmpty и prepareInsertEmpty не могут быть перемешаны.
Если canWriteEmpty возвращает false, будет выброшено исключение UnsupportedOperationException.
Параметр ImageWriteParam может быть необязательно предоставлен для управления процессом записи. Если param равно null, будет использован параметр записи по умолчанию.
Если предоставленный ImageWriteParam содержит значения дополнительных настроек, не поддерживаемые этим записывателем (например, прогрессивное кодирование или любые настройки, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
streamMetadata- объектIIOMetadata, представляющий метаданные потока, илиnullдля использования значений по умолчанию. -
imageType- объектImageTypeSpecifier, описывающий структуру изображения. -
width- ширина изображения. -
height- высота изображения. -
imageMetadata- объектIIOMetadata, представляющий метаданные изображения, илиnull. -
thumbnails- списокListминиатюр для этого изображения, илиnull. -
param- объектImageWriteParam, илиnullдля использования параметра записи по умолчанию. - Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
UnsupportedOperationException- еслиcanWriteEmptyвозвращаетfalse. -
IllegalStateException- если предыдущий вызовprepareWriteEmptyбыл сделан без соответствующего вызоваendWriteEmpty. -
IllegalStateException- если предыдущий вызовprepareInsertEmptyбыл сделан без соответствующего вызоваendInsertEmpty. -
IllegalArgumentException- еслиimageTypeравноnullилиthumbnailsсодержит ссылки или объекты, отличные отBufferedImage. -
IllegalArgumentException- если ширина или высота меньше 1. -
IOException- если при записи произошла ошибка ввода-вывода.
endWriteEmpty
public void endWriteEmpty()
throws IOException Завершает запись нового изображения, начатого предыдущим вызовом prepareWriteEmpty.
Если canWriteEmpty() возвращает false, будет выброшено исключение UnsupportedOperationException.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае выбрасывает исключение UnsupportedOperationException.
- Выбрасывает:
-
IllegalStateException- если выходной поток не установлен. -
UnsupportedOperationException- еслиcanWriteEmpty(imageIndex)возвращаетfalse. -
IllegalStateException- если предыдущий вызовprepareWriteEmptyбез соответствующего вызоваendWriteEmptyне был сделан. -
IllegalStateException- если предыдущий вызовprepareInsertEmptyбез соответствующего вызоваendInsertEmptyбыл сделан. -
IllegalStateException- если вызовprepareReiplacePixelsбыл сделан без соответсвующего вызоваendReplacePixels. -
IOException- если при записи произошла ошибка ввода-вывода.
canInsertEmpty
public boolean canInsertEmpty(int imageIndex)
throws IOException Возвращает true, если записыватель поддерживает вставку нового пустого изображения по заданному индексу. Значения пикселей изображения не определены и могут быть указаны частями с использованием методов replacePixels. Существующие изображения с индексами больше или равными индексу вставки будут иметь свои индексы увеличены на 1. Значение imageIndex равное -1 может быть использовано для обозначения индекса, на единицу больше текущего максимального индекса.
Записыватель, не поддерживающий вставку пустых изображений, может вернуть false без проверки границ индекса.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, и в противном случае возвращает false без проверки значения imageIndex.
- Параметры:
-
imageIndex— индекс, на котором должна быть вставлена картинка. - Возвращаемое значение:
-
true— если в данном индексе можно вставить пустую картинку. - Исключения:
-
IllegalStateException— если выходной поток не установлен. -
IndexOutOfBoundsException— если writer поддерживает вставку пустых картинок в целом, но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 содержат значения дополнительных параметров, не поддерживаемых этим writer-ом (например, прогрессивное кодирование или любые параметры, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, в противном случае выбрасывается исключение UnsupportedOperationException.
- Параметры:
-
imageIndex— индекс, на котором нужно записать картинку. -
imageType—ImageTypeSpecifierописывающий расположение картинки. -
width— ширина картинки. -
height— высота картинки. -
imageMetadata— объектIIOMetadata, представляющий метаданные картинки, илиnull. -
thumbnails— списокListминиатюр для этой картинки, илиnull. -
param—ImageWriteParam, илиnullдля использования параметра записи по умолчанию. - Исключения:
-
IllegalStateException— если выходной поток не установлен. -
UnsupportedOperationException— еслиcanInsertEmpty(imageIndex)возвращаетfalse. -
IndexOutOfBoundsException— еслиimageIndexменьше -1 или больше максимального доступного индекса. -
IllegalStateException— если ранее был вызовprepareInsertEmptyбез соответствующего вызоваendInsertEmpty. -
IllegalStateException— если ранее был вызовprepareWriteEmptyбез соответствующего вызоваendWriteEmpty. -
IllegalArgumentException— еслиimageTypeявляетсяnullилиthumbnailsсодержит ссылки или объекты, кромеBufferedImage. -
IllegalArgumentException— если ширина или высота меньше 1. -
IOException— если при записи возникла ошибка ввода-вывода.
endInsertEmpty
public void endInsertEmpty()
throws IOException Завершает вставку новой картинки, начатой предыдущим вызовом prepareInsertEmpty.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, в противном случае выбрасывается исключение UnsupportedOperationException.
- Исключения:
-
IllegalStateException— если выходной поток не установлен. -
UnsupportedOperationException— еслиcanInsertEmpty(imageIndex)возвращаетfalse. -
IllegalStateException— если ранее был вызовprepareInsertEmptyбез соответствующего вызоваendInsertEmpty. -
IllegalStateException— если ранее был вызовprepareWriteEmptyбез соответствующего вызоваendWriteEmpty. -
IllegalStateException— если вызовprepareReplacePixelsбыл выполнен без сопоставленного вызоваendReplacePixels. -
IOException— если при записи возникла ошибка ввода-вывода.
canReplacePixels
public boolean canReplacePixels(int imageIndex)
throws IOException Возвращает true, если writer позволяет заменить пиксели данной картинки с помощью методов replacePixels.
Writer, не поддерживающий замену пикселей, может вернуть false без проверки границ индекса.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, в противном случае возвращает false без проверки значения imageIndex.
- Параметры:
-
imageIndex— индекс картинки, пиксели которой нужно заменить. - Возвращаемое значение:
-
true— если пиксели данной картинки могут быть заменены. - Исключения:
-
IllegalStateException— если выходной поток не установлен. -
IndexOutOfBoundsException— если writer поддерживает замену пикселей в целом, ноimageIndexменьше 0 или больше максимального доступного индекса. -
IOException— если при запросе возникла ошибка ввода-вывода.
prepareReplacePixels
public void prepareReplacePixels(int imageIndex,
Rectangle region)
throws IOException Подготавливает writer к обработке серии вызовов методов replacePixels. Воздействующая область пикселей будет обрезана относительно предоставленного
Если canReplacePixels возвращает false, будет брошено исключение UnsupportedOperationException.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, в противном случае выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
imageIndex— индекс картинки, пиксели которой нужно заменить. -
region—Rectangle, который будет использован для обрезки будущих областей пикселей. - Исключения:
-
IllegalStateException— если выходной поток не установлен. -
UnsupportedOperationException— еслиcanReplacePixels(imageIndex)возвращаетfalse. -
IndexOutOfBoundsException— еслиimageIndexменьше 0 или больше максимального доступного индекса. -
IllegalStateException— если есть предыдущий вызовprepareReplacePixelsбез соответствующего вызоваendReplacePixels(т.е. вложенность запрещена). -
IllegalArgumentException— еслиregionравенnullили имеет ширину или высоту меньше 1. -
IOException— если при подготовке возникла ошибка ввода-вывода.
replacePixels
public void replacePixels(RenderedImage image,
ImageWriteParam param)
throws IOException Заменяет часть картинки, уже присутствующей в выходе, частью данной картинки. Данные картинки должны совпадать или быть преобразуемы в расположение картинки в существующей картинке.
Целевая область указана в аргументе param, и будет обрезана до границ картинки и области, предоставленной prepareReplacePixels. По крайней мере один пиксель источника не должен быть обрезан, в противном случае выбрасывается исключение.
В качестве опции может быть предоставлен ImageWriteParam, чтобы управлять процессом записи. Если param равен null, будет использован параметр записи по умолчанию.
Если предоставленные ImageWriteParam содержат значения дополнительных параметров, не поддерживаемые этим writer-ом (например, прогрессивное кодирование или любые параметры, специфичные для формата), они будут проигнорированы.
Этот метод может быть вызван только после вызова prepareReplacePixels, иначе будет брошено исключение IllegalStateException.
Реализация по умолчанию выбрасывает исключение IllegalStateException, если выходной поток null, в противном случае выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
image—RenderedImageсодержащий пиксели источника. -
param—ImageWriteParam, илиnullдля использования параметра записи по умолчанию. - Исключения:
-
IllegalStateException— если выходной поток не установлен. -
UnsupportedOperationException— еслиcanReplacePixels(imageIndex)возвращаетfalse. -
IllegalStateException— если нет предыдущего вызоваprepareReplacePixelsбез соответствующего вызоваendReplacePixels. -
IllegalArgumentException— если выполняется любое из следующих условий:-
imageравноnull. -
paramравноnull. - перекрывающаяся область не содержит по крайней мере одного пикселя.
- расположение
imageне соответствует или этот writer не может преобразовать его в существующее расположение изображения.
-
-
IOException— если при записи возникла ошибка ввода-вывода.
replacePixels
public void replacePixels(Raster raster,
ImageWriteParam param)
throws IOException Заменяет часть изображения, уже присутствующего в выводе, частью заданного Raster. Данные изображения должны совпадать или быть преобразуемы в макет изображения, существующего изображения.
Дополнительно может быть предоставлен ImageWriteParam, чтобы контролировать процесс записи. Если param равен null, будет использоваться параметр записи по умолчанию.
Область назначения задается в аргументе param, и будет обрезана до границ изображения и области, предоставленной prepareReplacePixels. Хотя бы один пиксел источника не должен быть обрезан, в противном случае будет выброшено исключение.
Если предоставленный ImageWriteParam содержит значения дополнительных настроек, не поддерживаемые этим записывающим устройством (например, прогрессивное кодирование или любые настройки, специфичные для формата), они будут проигнорированы.
Этот метод может быть вызван только после вызова prepareReplacePixels, иначе будет выброшено исключение IllegalStateException.
Реализация по умолчанию выбросит исключение IllegalStateException, если вывод null, и в противном случае выбросит исключение UnsupportedOperationException.
- Параметры:
-
raster- aRasterсодержащий пиксели источника. -
param- anImageWriteParam, илиnullдля использования параметраImageWriteParamпо умолчанию. - Исключения:
-
IllegalStateException- если вывод не установлен. -
UnsupportedOperationException- еслиcanReplacePixels(imageIndex)возвращаетfalse. -
IllegalStateException- если нет предыдущего вызоваprepareReplacePixelsбез соответствующего вызоваendReplacePixels. -
UnsupportedOperationException- еслиcanWriteRastersвозвращаетfalse. -
IllegalArgumentException- если истинно какое-либо из следующего:-
rasterравноnull. -
paramравноnull. - пересеченная область не содержит хотя бы одного пикселя.
- макет
rasterне совпадает или не может быть преобразован этим записывающим устройством в существующий макет изображения.
-
-
IOException- если при записи произошла ошибка ввода-вывода.
endReplacePixels
public void endReplacePixels()
throws IOException Завершает последовательность вызовов replacePixels.
Если canReplacePixels возвращает false, то будет выброшено исключение UnsupportedOperationException.
Реализация по умолчанию выбросит исключение IllegalStateException если вывод null, и в противном случае выбросит исключение UnsupportedOperationException.
- Исключения:
-
IllegalStateException- если вывод не установлен. -
UnsupportedOperationException- еслиcanReplacePixels(imageIndex)возвращаетfalse. -
IllegalStateException- если нет предыдущего вызоваprepareReplacePixelsбез соответствующего вызоваendReplacePixels. -
IOException- если при записи произошла ошибка ввода-вывода.
abort
public void abort()
Запрашивает прерывание текущей операции записи. Содержимое вывода после прерывания будет неопределенным.
Записывающие устройства должны вызывать clearAbortRequest в начале каждой операции записи и регулярно проверять значение abortRequested во время записи.
abortRequested
protected boolean abortRequested()
Возвращает true если запрос на прерывание текущей операции записи был сделан с момента создания записывающего устройства или после вызова clearAbortRequest.
- Возвращает:
-
trueесли текущая операция записи должна быть прервана. - См. также:
-
abort(),clearAbortRequest()
clearAbortRequest
protected void clearAbortRequest()
Очищает предыдущий запрос на прерывание. После вызова этого метода abortRequested вернет false.
- См. также:
-
abort(),abortRequested()
addIIOWriteWarningListener
public void addIIOWriteWarningListener(IIOWriteWarningListener listener)
Добавляет IIOWriteWarningListener в список зарегистрированных слушателей предупреждений. Если listener равно null, исключение не будет выброшено и никаких действий не будет выполнено. Сообщения, отправленные данному слушателю, будут локализованы, если это возможно, в соответствии с текущим Locale. Если Locale не задан, сообщения об ошибках могут быть локализованы по усмотрению записывающего устройства.
- Параметры:
-
listener-IIOWriteWarningListenerдля регистрации. - См. также:
removeIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)
removeIIOWriteWarningListener
public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Удаляет IIOWriteWarningListener из списка зарегистрированных слушателей предупреждений. Если слушатель не был зарегистрирован ранее или если listener равно null, исключение не будет выброшено и никаких действий не будет выполнено.
- Параметры:
-
listener-IIOWriteWarningListenerдля отмены регистрации. - См. также:
addIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)
removeAllIIOWriteWarningListeners
public void removeAllIIOWriteWarningListeners()
Удаляет все зарегистрированные объекты IIOWriteWarningListener.
Реализация по умолчанию устанавливает переменные warningListeners и warningLocales в значение null.
addIIOWriteProgressListener
public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
Добавляет IIOWriteProgressListener в список зарегистрированных слушателей прогресса. Если listener равно null, исключение не будет выброшено и никаких действий не будет выполнено.
- Параметры:
-
listener-IIOWriteProgressListenerдля регистрации. - См. также:
removeIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)
removeIIOWriteProgressListener
public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
Удаляет IIOWriteProgressListener из списка зарегистрированных слушателей прогресса. Если слушатель не был зарегистрирован ранее или если listener равно null, исключение не будет выброшено и никаких действий не будет выполнено.
- Параметры:
-
listener-IIOWriteProgressListenerдля отмены регистрации. - См. также:
addIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)
removeAllIIOWriteProgressListeners
public void removeAllIIOWriteProgressListeners()
Удаляет все зарегистрированные объекты IIOWriteProgressListener.
Реализация по умолчанию устанавливает переменную progressListeners в значение null.
processImageStarted
protected void processImageStarted(int imageIndex)
Передает начало записи изображения всем зарегистрированным IIOWriteProgressListener вызывая их метод imageStarted . Подклассы могут использовать этот метод для удобства.
- Параметры:
-
imageIndex- индекс изображения, которое будет записано.
processImageProgress
protected void processImageProgress(float percentageDone)
Передает текущий процент завершения изображения всем зарегистрированным IIOWriteProgressListener вызывая их метод imageProgress . Подклассы могут использовать этот метод для удобства.
- Параметры:
-
percentageDone- текущий процент завершения, какfloat.
processImageComplete
protected void processImageComplete()
Передает завершение записи изображения всем зарегистрированным IIOWriteProgressListener вызывая их метод imageComplete . Подклассы могут использовать этот метод для удобства.
processThumbnailStarted
protected void processThumbnailStarted(int imageIndex,
int thumbnailIndex) Передает начало записи миниатюры всем зарегистрированным IIOWriteProgressListener вызывая их метод thumbnailStarted . Подклассы могут использовать этот метод для удобства.
- Параметры:
-
imageIndex- индекс изображения, связанного с миниатюрой. -
thumbnailIndex- индекс миниатюры.
processThumbnailProgress
protected void processThumbnailProgress(float percentageDone)
Передает текущий процент завершения миниатюры всем зарегистрированным IIOWriteProgressListener вызывая их метод thumbnailProgress . Подклассы могут использовать этот метод для удобства.
- Параметры:
-
percentageDone- текущий процент завершения, какfloat.
processThumbnailComplete
protected void processThumbnailComplete()
Передает завершение записи миниатюры всем зарегистрированным IIOWriteProgressListener вызывая их метод thumbnailComplete . Подклассы могут использовать этот метод для удобства.
processWriteAborted
protected void processWriteAborted()
Передает информацию о прерывании записи всем зарегистрированным IIOWriteProgressListener вызывая их метод writeAborted . Подклассы могут использовать этот метод для удобства.
processWarningOccurred
protected void processWarningOccurred(int imageIndex,
String warning) Передает сообщение об ошибке всем зарегистрированным IIOWriteWarningListener вызывая их метод warningOccurred . Подклассы могут использовать этот метод для удобства.
- Параметры:
-
imageIndex- индекс изображения, на котором произошла ошибка. -
warning- сообщение об ошибке. - Исключения:
-
IllegalArgumentException- еслиwarningравноnull.
processWarningOccurred
protected void processWarningOccurred(int imageIndex,
String baseName,
String keyword) Передает локализованное сообщение об ошибке всем зарегистрированным IIOWriteWarningListener вызывая их метод warningOccurred со строкой из ResourceBundle. Подклассы могут использовать этот метод для удобства.
- Параметры:
-
imageIndex- индекс изображения, на котором произошла ошибка. -
baseName- базовое имя набораResourceBundleс локализованными сообщениями об ошибках. -
keyword- ключевое слово для индексации сообщения об ошибке в набореResourceBundle. - Исключения:
-
IllegalArgumentException- еслиbaseNameимеет значениеnull. -
IllegalArgumentException- еслиkeywordимеет значениеnull. -
IllegalArgumentException- если не может быть найден подходящийResourceBundle. -
IllegalArgumentException- если указанный ресурс не найден в найденномResourceBundle. -
IllegalArgumentException- если объект, извлеченный изResourceBundle, не являетсяString.
reset
public void reset()
Восстанавливает ImageWriter до его начального состояния.
Реализация по умолчанию вызывает setOutput(null), setLocale(null), removeAllIIOWriteWarningListeners(), removeAllIIOWriteProgressListeners(), и clearAbortRequest.
dispose
public void dispose()
Разрешает освобождение всех ресурсов, используемых этим объектом. Результат вызова любого другого метода (кроме finalize) после вызова этого метода не определен.
Важно, чтобы приложения вызывали этот метод, когда они больше не будут использовать этот ImageWriter. В противном случае писатель может продолжать удерживать ресурсы неопределенно долго.
Реализация по умолчанию этого метода в суперклассе ничего не делает. Реализации подклассов должны гарантировать, что все ресурсы, особенно нативные ресурсы, освобождаются.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.