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