Класс ImageIO
- java.lang.Object
-
- javax.imageio.ImageIO
public final class ImageIO extends Object
Класс, содержащий статические вспомогательные методы для поиска ImageReader и ImageWriter, а также для выполнения простого кодирования и декодирования.
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static ImageInputStream |
createImageInputStream(Object input) Возвращает |
static ImageOutputStream |
createImageOutputStream(Object output) Возвращает |
static File |
getCacheDirectory() Возвращает текущее значение, установленное |
static ImageReader |
getImageReader(ImageWriter writer) Возвращает |
static Iterator<ImageReader> |
getImageReaders(Object input) Возвращает |
static Iterator<ImageReader> |
getImageReadersByFormatName(String formatName) Возвращает |
static Iterator<ImageReader> |
getImageReadersByMIMEType(String MIMEType) Возвращает |
static Iterator<ImageReader> |
getImageReadersBySuffix(String fileSuffix) Возвращает |
static Iterator<ImageTranscoder> |
getImageTranscoders(ImageReader reader,
ImageWriter writer) Возвращает |
static ImageWriter |
getImageWriter(ImageReader reader) Возвращает |
static Iterator<ImageWriter> |
getImageWriters(ImageTypeSpecifier type,
String formatName) Возвращает |
static Iterator<ImageWriter> |
getImageWritersByFormatName(String formatName) Возвращает |
static Iterator<ImageWriter> |
getImageWritersByMIMEType(String MIMEType) Возвращает |
static Iterator<ImageWriter> |
getImageWritersBySuffix(String fileSuffix) Возвращает |
static String[] |
getReaderFileSuffixes() Возвращает массив |
static String[] |
getReaderFormatNames() Возвращает массив |
static String[] |
getReaderMIMETypes() Возвращает массив |
static boolean |
getUseCache() Возвращает текущее значение, установленное |
static String[] |
getWriterFileSuffixes() Возвращает массив |
static String[] |
getWriterFormatNames() Возвращает массив |
static String[] |
getWriterMIMETypes() Возвращает массив |
static BufferedImage |
read(File input) Возвращает |
static BufferedImage |
read(ImageInputStream stream) Возвращает |
static BufferedImage |
read(InputStream input) Возвращает |
static BufferedImage |
read(URL input) Возвращает |
static void |
scanForPlugins() Сканирует путь класса приложения на предмет плагинов, загружает их классы поставщиков услуг и регистрирует экземпляр поставщика услуг для каждого найденного с |
static void |
setCacheDirectory(File cacheDirectory) Устанавливает каталог, в котором будут создаваться файлы кэша. |
static void |
setUseCache(boolean useCache) Устанавливает флаг, указывающий, должен ли использоваться файл кэша на диске при создании |
static boolean |
write(RenderedImage im,
String formatName,
File output) Записывает изображение с помощью произвольного |
static boolean |
write(RenderedImage im,
String formatName,
ImageOutputStream output) Записывает изображение с помощью произвольного |
static boolean |
write(RenderedImage im,
String formatName,
OutputStream output) Записывает изображение с помощью произвольного |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
scanForPlugins
public static void scanForPlugins()
Сканирует подключаемые модули в пути класса приложения, загружает классы поставщиков услуг и регистрирует экземпляр поставщика услуг для каждого найденного с помощью IIORegistry.
Этот метод необходим, потому что путь класса приложения теоретически может измениться или могут появиться дополнительные плагины. Вместо повторного сканирования пути класса при каждом вызове API, путь класса сканируется автоматически только при первом вызове. Клиенты могут вызвать этот метод, чтобы инициировать повторное сканирование. Таким образом, этот метод должен вызываться только сложными приложениями, которые динамически предоставляют новые плагины во время выполнения.
Метод getResources контекста ClassLoader используется для поиска JAR-файлов, содержащих файлы с именем META-INF/services/javax.imageio.spi.имя_класса, где имя_класса — это одно из ImageReaderSpi, ImageWriterSpi, ImageTranscoderSpi, ImageInputStreamSpi, или ImageOutputStreamSpi, вдоль пути класса приложения.
Содержимое найденных файлов указывает имена фактических реализующих классов, которые реализуют указанные выше интерфейсы поставщиков услуг; затем стандартный загрузчик классов используется для загрузки каждого из этих классов и создания экземпляра каждого класса, который затем помещается в реестр для последующего извлечения.
Точный набор проверяемых расположений зависит от реализации среды выполнения Java.
- См. также:
ClassLoader.getResources(java.lang.String)
setUseCache
public static void setUseCache(boolean useCache)
Устанавливает флаг, указывающий, следует ли использовать файл кэша на диске при создании ImageInputStream и ImageOutputStream.
При чтении из стандартного InputStream, может потребоваться сохранение ранее прочитанной информации в кэше, поскольку базовый поток не позволяет повторно читать данные. Аналогично, при записи в стандартный OutputStream, кэш может быть использован для изменения ранее записанного значения до его записи в конечный пункт назначения.
Кэш может храниться в оперативной памяти или на диске. Установка этого флага в false запрещает использование диска для будущих потоков, что может быть полезно при работе с небольшими изображениями, так как устраняется накладные расходы на создание и уничтожение файлов.
При запуске значение устанавливается в true.
- Параметры:
-
useCache- aboolean, указывающий, следует ли использовать файл кэша в тех случаях, когда это необязательно. - См. также:
getUseCache()
getUseCache
public static boolean getUseCache()
Возвращает текущее значение, установленное setUseCache, или true, если явное значение не было задано.
- Возвращает:
- true, если для
ImageInputStreamиImageOutputStreamможно использовать кэш на диске. - См. также:
setUseCache(boolean)
setCacheDirectory
public static void setCacheDirectory(File cacheDirectory)
Устанавливает каталог, в котором будут создаваться файлы кэша. Значение null указывает на использование зависящего от системы каталога временных файлов по умолчанию. Если getUseCache возвращает false, это значение игнорируется.
- Параметры:
-
cacheDirectory- aFile, определяющий каталог. - Исключения:
-
SecurityException- если менеджер безопасности запрещает доступ к каталогу. -
IllegalArgumentException- еслиcacheDirне пустое, но не является каталогом. - См. также:
-
File.createTempFile(String, String, File),getCacheDirectory()
getCacheDirectory
public static File getCacheDirectory()
Возвращает текущее значение, установленное setCacheDirectory, или null если явное значение не было задано.
- Возвращает:
- a
File, указывающий на каталог, в котором будут создаваться файлы кэша, илиnullдля указания зависящего от системы каталога временных файлов по умолчанию. - См. также:
setCacheDirectory(java.io.File)
createImageInputStream
public static ImageInputStream createImageInputStream(Object input)
throws IOException Возвращает ImageInputStream, который будет получать входные данные из данного Object. Набор ImageInputStreamSpi зарегистрированных в классе IIORegistry запрашивается, и первый, способный принимать входные данные из предоставленного объекта, используется для создания возвращаемого ImageInputStream. Если подходящий ImageInputStreamSpi не найден, возвращается null.
Текущие настройки кэша из getUseCache и getCacheDirectory будут использоваться для управления кэшированием.
- Параметры:
-
input- объектObject, используемый в качестве источника ввода, например,File, читаемыйRandomAccessFileилиInputStream. - Возвращает:
- объект
ImageInputStream, илиnull. - Исключения:
-
IllegalArgumentException- еслиinputявляетсяnull. -
IOException- если требуется файл кэша, но он не может быть создан. - См. также:
ImageInputStreamSpi
createImageOutputStream
public static ImageOutputStream createImageOutputStream(Object output)
throws IOException Возвращает ImageOutputStream, который будет отправлять свой вывод в данный Object. Набор ImageOutputStreamSpi зарегистрированных в классе IIORegistry запрашивается, и первый, способный отправлять вывод из предоставленного объекта, используется для создания возвращаемого ImageOutputStream. Если подходящий ImageOutputStreamSpi не найден, возвращается null.
Текущие настройки кэша из getUseCache и getCacheDirectory будут использоваться для управления кэшированием.
- Параметры:
-
output- объектObject, используемый в качестве пункта назначения вывода, например,File, записываемыйRandomAccessFileилиOutputStream. - Возвращает:
- объект
ImageOutputStream, илиnull. - Исключения:
-
IllegalArgumentException- еслиoutputявляетсяnull. -
IOException- если требуется файл кэша, но он не может быть создан. - См. также:
ImageOutputStreamSpi
getReaderFormatNames
public static String[] getReaderFormatNames()
Возвращает массив String с перечислением всех неформальных имён форматов, поддерживаемых текущим набором зарегистрированных читателей.
- Возвращает:
- массив
String.
getReaderMIMETypes
public static String[] getReaderMIMETypes()
Возвращает массив String с перечислением всех MIME-типов, поддерживаемых текущим набором зарегистрированных читателей.
- Возвращает:
- массив
String.
getReaderFileSuffixes
public static String[] getReaderFileSuffixes()
Возвращает массив String с перечислением всех расширений файлов, связанных с форматами, поддерживаемыми текущим набором зарегистрированных читателей.
- Возвращает:
- массив
String. - С тех пор:
- 1.6
getImageReaders
public static Iterator<ImageReader> getImageReaders(Object input)
Возвращает Iterator, содержащий все текущие зарегистрированные ImageReader, которые заявляют о возможности декодирования предоставленного Object, обычно ImageInputStream.
Позиция потока сохраняется после выполнения данного метода.
- Параметры:
-
input-ImageInputStreamили другойObject, содержащий закодированные данные изображения. - Возвращает:
- объект
IteratorсодержащийImageReader. - Исключения:
-
IllegalArgumentException- еслиinputявляетсяnull. - См. также:
ImageReaderSpi.canDecodeInput(java.lang.Object)
getImageReadersByFormatName
public static Iterator<ImageReader> getImageReadersByFormatName(String formatName)
Возвращает Iterator содержащий все текущие зарегистрированные ImageReaders, которые заявляют о возможности декодирования указанного формата.
- Параметры:
-
formatName- aStringсодержащий неформальное имя формата (например, "jpeg" или "tiff"). - Возвращает:
- объект
IteratorсодержащийImageReader. - Исключения:
-
IllegalArgumentException- еслиformatNameявляетсяnull. - См. также:
ImageReaderWriterSpi.getFormatNames()
getImageReadersBySuffix
public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
Возвращает Iterator содержащий все текущие зарегистрированные ImageReaders, которые заявляют о возможности декодирования файлов с указанным расширением.
- Параметры:
-
fileSuffix- aStringсодержащий расширение файла (например, "jpg" или "tiff"). - Возвращает:
- объект
IteratorсодержащийImageReader. - Исключения:
-
IllegalArgumentException- еслиfileSuffixявляетсяnull. - См. также:
ImageReaderWriterSpi.getFileSuffixes()
getImageReadersByMIMEType
public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType)
Возвращает Iterator содержащий все текущие зарегистрированные ImageReaders, которые заявляют о возможности декодирования файлов с указанным MIME-типом.
- Параметры:
-
MIMEType- aStringсодержащий расширение файла (например, "image/jpeg" или "image/x-bmp"). - Возвращает:
- объект
IteratorсодержащийImageReader. - Исключения:
-
IllegalArgumentException- еслиMIMETypeявляетсяnull. - См. также:
ImageReaderWriterSpi.getMIMETypes()
getWriterFormatNames
public static String[] getWriterFormatNames()
Возвращает массив String с перечислением всех неформальных имён форматов, поддерживаемых текущим набором зарегистрированных писателей.
- Возвращает:
- массив
String.
getWriterMIMETypes
public static String[] getWriterMIMETypes()
Возвращает массив String со списком всех MIME-типов, поддерживаемых текущим набором зарегистрированных записывателей.
- Возвращает:
- массив
String.
getWriterFileSuffixes
public static String[] getWriterFileSuffixes()
Возвращает массив String со списком всех расширений файлов, связанных с форматами, поддерживаемыми текущим набором зарегистрированных записывателей.
- Возвращает:
- массив
String. - С:
- 1.6
getImageWritersByFormatName
public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName)
Возвращает Iterator, содержащий все текущие зарегистрированные ImageWriter , которые утверждают, что могут кодировать указанный формат.
- Параметры:
-
formatName-String, содержащий неофициальное имя формата (например, "jpeg" или "tiff"). - Возвращает:
Iterator, содержащийImageWriter.- Выбрасывает:
-
IllegalArgumentException- еслиformatNameявляетсяnull. - См. также:
ImageReaderWriterSpi.getFormatNames()
getImageWritersBySuffix
public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
Возвращает Iterator , содержащий все текущие зарегистрированные ImageWriter , которые утверждают, что могут кодировать файлы с заданным расширением.
- Параметры:
-
fileSuffix-String, содержащий расширение файла (например, "jpg" или "tiff"). - Возвращает:
Iterator, содержащийImageWriter.- Выбрасывает:
-
IllegalArgumentException- еслиfileSuffixявляетсяnull. - См. также:
ImageReaderWriterSpi.getFileSuffixes()
getImageWritersByMIMEType
public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType)
Возвращает Iterator , содержащий все текущие зарегистрированные ImageWriter , которые утверждают, что могут кодировать файлы с заданным MIME-типом.
- Параметры:
-
MIMEType-String, содержащий расширение файла (например, "image/jpeg" или "image/x-bmp"). - Возвращает:
Iterator, содержащийImageWriter.- Выбрасывает:
-
IllegalArgumentException- еслиMIMETypeявляетсяnull. - См. также:
ImageReaderWriterSpi.getMIMETypes()
getImageWriter
public static ImageWriter getImageWriter(ImageReader reader)
Возвращает ImageWriter, соответствующий заданному ImageReader, если он существует, или null, если плагин для данного ImageReader не указывает соответствующего ImageWriter, или если заданный ImageReader не зарегистрирован. Этот механизм может использоваться для получения ImageWriter, который будет понимать внутреннюю структуру метаданных, не относящихся к пикселям (кодированных объектами IIOMetadata), созданных ImageReader. Получая эти данные из ImageReader и передавая их в ImageWriter, полученный этим методом, клиентская программа может читать изображение, изменить его каким-либо образом и записать его обратно, сохранив все метаданные, не понимая ничего о структуре метаданных или даже о формате изображения. Обратите внимание, что этот метод возвращает «предпочтительного» записывателя, который является первым в списке, возвращаемом javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames().
- Параметры:
-
reader- экземпляр зарегистрированногоImageReader. - Возвращает:
ImageWriter, или null.- Выбрасывает:
-
IllegalArgumentException- еслиreaderявляетсяnull. - См. также:
-
getImageReader(ImageWriter),ImageReaderSpi.getImageWriterSpiNames()
getImageReader
public static ImageReader getImageReader(ImageWriter writer)
Возвращает ImageReader, соответствующий заданному ImageWriter, если он существует, или null, если плагин для данного ImageWriter не указывает соответствующего ImageReader, или если заданный ImageWriter не зарегистрирован. Этот метод предоставляется в основном для симметрии с getImageWriter(ImageReader). Обратите внимание, что этот метод возвращает «предпочтительного» читателя, который является первым в списке, возвращаемом javax.imageio.spi.ImageWriterSpi.getImageReaderSpiNames().
- Параметры:
-
writer- экземпляр зарегистрированногоImageWriter. - Возвращает:
ImageReader, или null.- Выбрасывает:
-
IllegalArgumentException- еслиwriterявляетсяnull. - См. также:
-
getImageWriter(ImageReader),ImageWriterSpi.getImageReaderSpiNames()
getImageWriters
public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type,
String formatName) Возвращает Iterator , содержащий все текущие зарегистрированные ImageWriter , которые утверждают, что могут кодировать изображения заданной структуры (указанной с помощью ImageTypeSpecifier) в заданном формате.
- Параметры:
-
type-ImageTypeSpecifier, указывающий структуру изображения, которое должно быть записано. -
formatName- неофициальное имяformat. - Возвращает:
Iterator, содержащийImageWriter.- Выбрасывает:
-
IllegalArgumentException- если любой параметр являетсяnull. - См. также:
ImageWriterSpi.canEncodeImage(ImageTypeSpecifier)
getImageTranscoders
public static Iterator<ImageTranscoder> getImageTranscoders(ImageReader reader,
ImageWriter writer) Возвращает Iterator , содержащий все текущие зарегистрированные ImageTranscoder , которые утверждают, что могут преобразовывать метаданные заданного ImageReader и ImageWriter.
- Параметры:
-
reader-ImageReader. -
writer-ImageWriter. - Возвращает:
Iterator, содержащийImageTranscoder.- Выбрасывает:
-
IllegalArgumentException- еслиreaderилиwriterявляетсяnull.
read
public static BufferedImage read(File input)
throws IOException Возвращает BufferedImage в результате декодирования предоставленного File с ImageReader, выбранным автоматически из числа текущих зарегистрированных. File обернут в ImageInputStream. Если ни один зарегистрированный ImageReader не заявляет о возможности чтения полученного потока, возвращается null.
Текущие настройки кеширования из getUseCache и getCacheDirectory будут использоваться для управления кешированием в созданном ImageInputStream.
Обратите внимание, что нет метода read, принимающего имя файла в качестве String; используйте этот метод вместо этого после создания File из имени файла.
Этот метод не пытается найти ImageReader , которые могут читать непосредственно из File; это можно сделать с помощью IIORegistry и ImageReaderSpi.
- Параметры:
-
input-Fileдля чтения. - Возвращает:
BufferedImage, содержащий декодированное содержимое входных данных, илиnull.- Выбрасывает:
-
IllegalArgumentException- еслиinputявляетсяnull. -
IOException- если при чтении произошла ошибка или при создании необходимого ImageInputStream.
read
public static BufferedImage read(InputStream input)
throws IOException Возвращает BufferedImage в результате декодирования предоставленного InputStream с ImageReader, выбранным автоматически из числа текущих зарегистрированных. InputStream обернут в ImageInputStream. Если ни один зарегистрированный ImageReader не заявляет о возможности чтения полученного потока, возвращается null.
Текущие настройки кеширования из getUseCache и getCacheDirectory будут использоваться для управления кешированием в созданном ImageInputStream.
Этот метод не пытается найти ImageReader , которые могут читать непосредственно из InputStream; это можно сделать с помощью IIORegistry и ImageReaderSpi.
Этот метод не закрывает предоставленный InputStream после завершения операции чтения; ответственность за закрытие потока, если это необходимо, лежит на вызывающей стороне.
- Параметры:
-
input-InputStreamдля чтения. - Возвращает:
BufferedImage, содержащий декодированное содержимое входных данных, илиnull.- Выбрасывает:
-
IllegalArgumentException- еслиinputявляетсяnull. -
IOException- если при чтении произошла ошибка или при создании необходимого ImageInputStream.
read
public static BufferedImage read(URL input)
throws IOException Возвращает BufferedImage в результате декодирования предоставленного URL с ImageReader, выбранным автоматически из числа текущих зарегистрированных. InputStream получен из URL, который обернут в ImageInputStream. Если ни один зарегистрированный ImageReader не заявляет о возможности чтения полученного потока, возвращается null.
Текущие настройки кеширования из getUseCache и getCacheDirectory будут использоваться для управления кешированием в созданном ImageInputStream.
Этот метод не пытается найти ImageReader , которые могут читать непосредственно из URL; это можно сделать с помощью IIORegistry и ImageReaderSpi.
- Параметры:
-
input- объектURLдля чтения. - Возвращает:
- объект
BufferedImage, содержащий декодированное содержимое входных данных, илиnull. - Выбрасывает:
-
IllegalArgumentException- еслиinputявляетсяnull. -
IOException- если произошла ошибка во время чтения или при создании необходимого объекта ImageInputStream.
read
public static BufferedImage read(ImageInputStream stream)
throws IOException Возвращает объект BufferedImage в результате декодирования предоставленного объекта ImageInputStream с автоматически выбранным из зарегистрированных ImageReader форматом. Если ни один зарегистрированный ImageReader не может прочитать поток, возвращается null.
В отличие от большинства других методов в этом классе, этот метод закрывает предоставленный объект ImageInputStream после завершения операции чтения, если не возвращается null в таком случае, метод не закрывает поток.
- Параметры:
-
stream- объектImageInputStreamдля чтения. - Возвращает:
- объект
BufferedImage, содержащий декодированное содержимое входных данных, илиnull. - Выбрасывает:
-
IllegalArgumentException- еслиstreamявляетсяnull. -
IOException- если произошла ошибка во время чтения.
write
public static boolean write(RenderedImage im,
String formatName,
ImageOutputStream output)
throws IOException Записывает изображение, используя произвольный ImageWriter поддерживающий заданный формат, в объект ImageOutputStream. Изображение записывается в ImageOutputStream, начиная с текущей позиции указателя потока, перезаписывая существующие данные потока от этой точки далее, если они есть.
Этот метод не закрывает предоставленный ImageOutputStream после завершения операции записи; ответственность за закрытие потока, если необходимо, лежит на вызывающей стороне.
- Параметры:
-
im- изображениеRenderedImageдля записи. -
formatName- строкаStringсодержащая неофициальное имя формата. -
output- объектImageOutputStreamдля записи. - Возвращает:
-
falseесли подходящий записыватель не найден. - Выбрасывает:
-
IllegalArgumentException- если какой-либо параметр являетсяnull. -
IOException- если произошла ошибка во время записи.
write
public static boolean write(RenderedImage im,
String formatName,
File output)
throws IOException Записывает изображение, используя произвольный ImageWriter поддерживающий заданный формат, в файл File. Если файл уже существует, его содержимое отбрасывается.
- Параметры:
-
im- изображениеRenderedImageдля записи. -
formatName- строкаStringсодержащая неофициальное имя формата. -
output- файлFileдля записи. - Возвращает:
-
falseесли подходящий записыватель не найден. - Выбрасывает:
-
IllegalArgumentException- если какой-либо параметр являетсяnull. -
IOException- если произошла ошибка во время записи или при создании необходимого объекта ImageOutputStream.
write
public static boolean write(RenderedImage im,
String formatName,
OutputStream output)
throws IOException Записывает изображение, используя произвольный ImageWriter поддерживающий заданный формат, в поток OutputStream.
Этот метод не закрывает предоставленный OutputStream после завершения операции записи; ответственность за закрытие потока, если необходимо, лежит на вызывающей стороне.
Будут использоваться текущие настройки кэширования из getUseCache и getCacheDirectory.
- Параметры:
-
im- изображениеRenderedImageдля записи. -
formatName- строкаStringсодержащая неофициальное имя формата. -
output- потокOutputStreamдля записи. - Возвращает:
-
falseесли подходящий записыватель не найден. - Выбрасывает:
-
IllegalArgumentException- если какой-либо параметр являетсяnull. -
IOException- если произошла ошибка во время записи или при создании необходимого объекта ImageOutputStream.
© 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.