|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ImageReadParam extends IIOParam
ImageReader. Об изображении, закодированном как часть файла или потока, можно думать расширения в многократных размерностях: пространственные размерности width и height, многих полос, и многих прогрессивных передач декодирования. Этот class позволяет непрерывной (hyper) прямоугольной подобласти изображения во всех этих размерностях быть выбранной для того, чтобы декодировать. Дополнительно, пространственные размерности могут быть подвыбраны с перерывами. Наконец, цвет и преобразования формата могут быть определены, управляя ColorModel и SampleModel из целевого изображения, любого, обеспечивая a BufferedImage или при использовании ImageTypeSpecifier.
ImageReadParam объект используется, чтобы определить, как изображение, или ряд изображений, будет преобразовано на вводе из потока в контексте платформы ввода-вывода Изображения Java. Плагин для определенного формата изображения возвратит экземпляры ImageReadParam от getDefaultReadParam метод ImageReader реализация.
Состояние, сохраняемое экземпляром ImageReadParam независимо от любого определенного декодируемого изображения. Когда фактическое декодирование имеет место, набор значений в чтении param объединяются с фактическими свойствами изображения, декодируемого от потока и места назначения BufferedImage это получит декодируемые пиксельные данные. Например, исходное использование набора области setSourceRegion будет сначала пересечен с фактической допустимой исходной областью. Результат будет преобразован значением, возвращенным getDestinationOffset, и получающийся прямоугольник, пересеченный с фактической допустимой конечной областью, чтобы привести к конечной области, которая будет записана.
Параметры, определенные ImageReadParam применяются к изображению следующим образом. Во-первых, если размер рендеринга был установлен setSourceRenderSize, все декодируемое изображение представляется в размере, данном getSourceRenderSize. Иначе, изображению дали его естественный размер ImageReader.getWidth и ImageReader.getHeight.
Затем, изображение отсекается против исходной области, определенной getSourceXOffset, getSourceYOffset, getSourceWidth, и getSourceHeight.
Получающаяся область тогда подвыбирается согласно поданным факторам . Первый пиксель, число пикселей на строку, и число строк все зависят от настроек подвыборки. Вызовите минимум X и координаты Y получающегося прямоугольника (IIOParam.setSourceSubsamplingminX, minY), его width w и его height h.
Этот прямоугольник смещается (getDestinationOffset().x, getDestinationOffset().y) и отсеченный против целевых границ. Если никакое целевое изображение не было установлено, место назначения определяется, чтобы иметь width getDestinationOffset().x + w, и height getDestinationOffset().y + h так, чтобы все пиксели исходной области могли быть записаны месту назначения.
Пиксели, которые приземляются, после подвыборки, в пределах целевого изображения, и которые пишутся в одной из прогрессивных передач, определенных getSourceMinProgressivePass и getSourceNumProgressivePasses передаются следующему шагу.
Наконец, исходные выборки каждого пикселя отображаются в целевые полосы согласно алгоритму, описанному в комментарии для setDestinationBands.
Сменные писатели могут расширить функциональность ImageReadParam обеспечивая подкласс, который реализует дополнительные, сменные определенные интерфейсы. Это до плагина к документу, какие интерфейсы доступны и как они должны использоваться. Читатели тихо проигнорируют любые расширенные функции ImageReadParam подкласс которого они не знают. Кроме того, они могут проигнорировать любые дополнительные функции, которые они обычно отключают, создавая их собственное ImageReadParam экземпляры через getDefaultReadParam.
Отметьте, что, если метод запроса не существует для возможности, он должен поддерживаться всеми ImageReader реализации (например, источник представляет размер, является дополнительным, но подвыборка должна поддерживаться).
ImageReader, ImageWriter, ImageWriteParam| Модификатор и Тип | Поле и Описание |
|---|---|
protected boolean |
canSetSourceRenderSize
true если это ImageReadParam позволяет исходным размерностям рендеринга быть установленными. |
protected BufferedImage |
место назначения
Текущее место назначения
BufferedImage, или null если ни один не был установлен. |
protected int[] |
destinationBands
Набор целевых полос, которые будут использоваться, как массив
ints. |
protected int |
minProgressivePass
Минимум индексирует прогрессивной передачи, чтобы читать из источника.
|
protected int |
numProgressivePasses
Максимальное количество прогрессивных передач, чтобы читать из источника.
|
protected Dimension |
sourceRenderSize
Требуемый рендеринг width и height источника, если
canSetSourceRenderSize true, или null. |
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset| Конструктор и Описание |
|---|
ImageReadParam()
Конструкции
ImageReadParam. |
| Модификатор и Тип | Метод и Описание |
|---|---|
boolean |
canSetSourceRenderSize()
Возвраты
true если этот читатель позволяет исходному изображению быть представленным в произвольном размере как часть процесса декодирования, посредством setSourceRenderSize метод. |
BufferedImage |
getDestination()
Возвраты
BufferedImage в настоящий момент установленный setDestination метод, или null если ни один не устанавливается. |
int[] |
getDestinationBands()
Возвращает набор индексов полосы, куда данные будут помещены.
|
int |
getSourceMaxProgressivePass()
Если
getSourceNumProgressivePasses равно Integer.MAX_VALUE, возвраты Integer.MAX_VALUE. |
int |
getSourceMinProgressivePass()
Возвращает индексирование первой прогрессивной передачи, которая будет декодироваться.
|
int |
getSourceNumProgressivePasses()
Возвращает число прогрессивных передач, которые будут декодироваться.
|
Размерность |
getSourceRenderSize()
Возвращает width и height исходного изображения, поскольку это будет представлено во время декодирования, если они были установлены через
setSourceRenderSize метод. |
void |
setDestination(BufferedImage destination)
Предоставления a
BufferedImage использоваться в качестве места назначения для декодируемых пиксельных данных. |
void |
setDestinationBands(int[] destinationBands)
Устанавливает индексы целевых полос, куда данные будут помещены.
|
void |
setDestinationType(ImageTypeSpecifier destinationType)
Устанавливает требуемый тип изображения для целевого изображения, используя
ImageTypeSpecifier. |
void |
setSourceProgressivePasses(int minPass, int numPasses)
Устанавливает диапазон прогрессивных передач, которые будут декодироваться.
|
void |
setSourceRenderSize(Dimension size)
Если изображение в состоянии быть представленным в произвольном размере, устанавливает источник width и height к предоставленным значениям.
|
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setSourceBands, setSourceRegion, setSourceSubsamplingprotected boolean canSetSourceRenderSize
true если это ImageReadParam позволяет исходным размерностям рендеринга быть установленными. По умолчанию значение false. Подклассы должны установить это значение вручную. ImageReaders, которые не поддерживают установку источника, представляют размер, должен установить это значение в false.
protected Dimension sourceRenderSize
canSetSourceRenderSize true, или null. ImageReaders, которые не поддерживают установку источника, представляют размер, может проигнорировать это значение.
protected BufferedImage destination
BufferedImage, или null если ни один не был установлен. По умолчанию значение null.protected int[] destinationBands
ints. По умолчанию значение null, указание на все целевые полосы должно быть записано в порядке.protected int minProgressivePass
Подклассы должны гарантировать, что это значение является неотрицательным.
protected int numProgressivePasses
Integer.MAX_VALUE, который указывает, что передачи до и включая последнюю доступную передачу должны декодироваться. Подклассы должны гарантировать, что это значение положительно. Дополнительно, если значение не Integer.MAX_VALUE, тогда minProgressivePass + numProgressivePasses - 1 не должен превысить Integer.MAX_VALUE.
public void setDestinationType(ImageTypeSpecifier destinationType)
IIOParamImageTypeSpecifier. Читая, если расположение места назначения было установлено, используя этот метод, каждый звонок ImageReader
read метод возвратит новое BufferedImage использование формата определяется предоставленным спецификатором типа. Как побочный эффект, любое место назначения BufferedImage установленный ImageReadParam.setDestination(BufferedImage) больше не будет установлен как место назначения. Другими словами этот метод может считаться вызовом setDestination((BufferedImage)null).
При записи, целевой тип, возможно используемый, чтобы определить цветной тип изображения. SampleModel информация будет проигнорирована, и может быть null. Например, 4 соединенное изображение могло представить или CMYK или данные RGBA. Если целевой тип устанавливается, ColorModel переопределит любого ColorModel на изображении непосредственно. Это крайне важно когда setSourceBands используется начиная с изображения ColorModel обратится ко всему изображению, а не к подмножеству записанных полос.
setDestinationType в class IIOParamdestinationType - ImageTypeSpecifier использоваться, чтобы определить целевое расположение и цветной тип.IIOParam.getDestinationType()public void setDestination(BufferedImage destination)
BufferedImage использоваться в качестве места назначения для декодируемых пиксельных данных. В настоящий момент изображение набора будет записано read, readAll, и readRaster методы, и ссылка на это будут возвращены теми методами. Пиксельные данные от вышеупомянутых методов будут записаны, запускаясь при смещении, определенном getDestinationOffset.
Если destination null, недавно создаваемый BufferedImage будет возвращен теми методами.
Во время чтения изображение проверяется, чтобы проверить что ColorModel и SampleModel соответствуйте одному из ImageTypeSpecifiers возвратился из ImageReader's getImageTypes метод. Если это не сделает, то читатель бросит IIOException.
destination - BufferedImage, который будет записан, или null.getDestination()public BufferedImage getDestination()
BufferedImage в настоящий момент установленный setDestination метод, или null если ни один не устанавливается.setDestination(java.awt.image.BufferedImage)public void setDestinationBands(int[] destinationBands)
A null значение указывает, что все целевые полосы будут использоваться.
Выбор целевого подмножества полосы не будет влиять на число полос в выходном изображении чтения, если никакое целевое изображение не будет определено; у создаваемого целевого изображения все еще будет то же самое число полос, как будто этот метод никогда не вызывали. Если различное число полос в целевом изображении требуется, изображение должно быть предоставлено, используя ImageReadParam.setDestination метод.
Во время чтения или записи, IllegalArgumentException будет брошен читателем или писателем, если значение, больше чем самая большая целевая полоса, индексирует, был определен, или если число исходных полос и целевых полос, которые будут использоваться, отличается. ImageReader.checkReadParamBandSettings метод может использоваться, чтобы автоматизировать этот тест.
destinationBands - массив целочисленных индексов полосы, которые будут использоваться.IllegalArgumentException - если destinationBands содержит отрицательное или двойное значение.getDestinationBands(), IIOParam.getSourceBands(), ImageReader.checkReadParamBandSettings(javax.imageio.ImageReadParam, int, int)public int[] getDestinationBands()
null возвращается, чтобы указать, что все целевые полосы будут использоваться.null.setDestinationBands(int[])public boolean canSetSourceRenderSize()
true если этот читатель позволяет исходному изображению быть представленным в произвольном размере как часть процесса декодирования, посредством setSourceRenderSize метод. Если этот метод возвращается false, звонки setSourceRenderSize бросит UnsupportedOperationException.true если установка исходного размера рендеринга поддерживается.setSourceRenderSize(java.awt.Dimension)public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException
getWidth и getHeight методы на ImageReader не влияются этим методом; они будут продолжать возвращать размер значения по умолчанию для изображения. Точно так же, если изображение также размещается мозаика рядом, width и height даются с точки зрения размера значения по умолчанию. Как правило, width и height должны быть выбраны так, что, отношение width к height близко приближает формат изображения изображения, как возвращено из ImageReader.getAspectRatio.
Если этот плагин не позволяет размеру рендеринга быть установленным, UnsupportedOperationException будет брошен.
Чтобы удалить представлять установку размера, передайте в значении null для size.
size - a Dimension указание на требуемый width и height.IllegalArgumentException - если или width или height отрицательны или 0.UnsupportedOperationException - если изменение размеров изображения не поддерживается этим плагином.getSourceRenderSize(), ImageReader.getWidth(int), ImageReader.getHeight(int), ImageReader.getAspectRatio(int)public Dimension getSourceRenderSize()
setSourceRenderSize метод. A nullзначение указывает, что никакая установка не была сделана.Dimension.setSourceRenderSize(java.awt.Dimension)public void setSourceProgressivePasses(int minPass,
int numPasses)
Прогрессивная передача является перекодированием всего изображения, обычно в прогрессивно более высоких эффективных разрешениях, но требовании большей пропускной способности передачи. Наиболее популярный способ использования прогрессивного кодирования находится в формате JPEG, где последовательные передачи включают более подробные представления высокочастотного контента изображения.
Фактическое число передач, которые будут декодироваться, определяется во время декодирования, основанного на числе фактических передач, доступных в потоке. Таким образом, если minPass + numPasses - 1 больше чем индексирование последних доступных передач, декодирование закончится той передачей.
Значение numPasses из Integer.MAX_VALUE указывает что все передачи от minPass вперед должен быть считан. Иначе, индексирование последней передачи (то есть, minPass + numPasses - 1) не должен превысить Integer.MAX_VALUE.
Есть нет unsetSourceProgressivePasses метод; тот же самый эффект может быть получен, вызывая setSourceProgressivePasses(0, Integer.MAX_VALUE).
minPass - индексирование первой передачи, которая будет декодироваться.numPasses - максимальное количество передач, которые будут декодироваться.IllegalArgumentException - если minPass отрицательно, numPasses отрицательно или 0, или numPasses меньше чем Integer.MAX_VALUE но minPass + numPasses - 1 больше чем INTEGER.MAX_VALUE.getSourceMinProgressivePass(), getSourceMaxProgressivePass()public int getSourceMinProgressivePass()
setSourceProgressivePasses(int, int), getSourceNumProgressivePasses()public int getSourceMaxProgressivePass()
getSourceNumProgressivePasses равно Integer.MAX_VALUE, возвраты Integer.MAX_VALUE. Иначе, возвраты getSourceMinProgressivePass() + getSourceNumProgressivePasses() - 1.Integer.MAX_VALUE.public int getSourceNumProgressivePasses()
Integer.MAX_VALUE будет возвращен (который является корректным значением).setSourceProgressivePasses(int, int), getSourceMinProgressivePass()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92