Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ImageReadParam extends IIOParam
ImageReader
. Об изображении, закодированном как часть файла или потока, можно думать расширения в многократных размерностях: пространственные размерности ширины и высоты, многих полос, и многих прогрессивных передач декодирования. Этот класс позволяет непрерывной (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.setSourceSubsampling
minX
, minY
), его ширина w
и его высота h
.
Этот прямоугольник смещается (getDestinationOffset().x
, getDestinationOffset().y
) и отсеченный против целевых границ. Если никакое целевое изображение не было установлено, место назначения определяется, чтобы иметь ширину getDestinationOffset().x
+ w
, и высота 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
Набор целевых полос, которые будут использоваться, как массив
int s. |
protected int |
minProgressivePass
Минимальный индекс прогрессивной передачи, чтобы читать из источника.
|
protected int |
numProgressivePasses
Максимальное количество прогрессивных передач, чтобы читать из источника.
|
protected Dimension |
sourceRenderSize
Требуемая ширина рендеринга и высота источника, если
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()
Возвращает ширину и высоту исходного изображения, поскольку это будет представлено во время декодирования, если они были установлены через
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)
Если изображение в состоянии быть представленным в произвольном размере, устанавливает исходную ширину и высоту к предоставленным значениям.
|
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setSourceBands, setSourceRegion, setSourceSubsampling
protected boolean canSetSourceRenderSize
true
если это ImageReadParam
позволяет исходным размерностям рендеринга быть установленными. По умолчанию значение false
. Подклассы должны установить это значение вручную. ImageReader
s, которые не поддерживают установку исходного размера рендеринга, должен установить это значение в false
.
protected Dimension sourceRenderSize
canSetSourceRenderSize
true
, или null
. ImageReader
s, которые не поддерживают установку исходного размера рендеринга, может проигнорировать это значение.
protected BufferedImage destination
BufferedImage
, или null
если ни один не был установлен. По умолчанию значение null
.protected int[] destinationBands
int
s. По умолчанию значение null
, указание на все целевые полосы должно быть записано в порядке.protected int minProgressivePass
Подклассы должны гарантировать, что это значение является неотрицательным.
protected int numProgressivePasses
Integer.MAX_VALUE
, который указывает, что передачи до и включая последнюю доступную передачу должны декодироваться. Подклассы должны гарантировать, что это значение положительно. Дополнительно, если значение не Integer.MAX_VALUE
, тогда minProgressivePass + numProgressivePasses - 1
не должен превысить Integer.MAX_VALUE
.
public void setDestinationType(ImageTypeSpecifier destinationType)
IIOParam
ImageTypeSpecifier
. Читая, если расположение места назначения было установлено, используя этот метод, каждый звонок ImageReader
read
метод возвратит новое BufferedImage
использование формата определяется предоставленным спецификатором типа. Как побочный эффект, любое место назначения BufferedImage
установленный ImageReadParam.setDestination(BufferedImage)
больше не будет установлен как место назначения. Другими словами этот метод может считаться вызовом setDestination((BufferedImage)null)
.
При записи, целевой тип, возможно используемый, чтобы определить цветной тип изображения. SampleModel
информация будет проигнорирована, и может быть null
. Например, 4 соединенное изображение могло представить или CMYK или данные RGBA. Если целевой тип устанавливается, ColorModel
переопределит любого ColorModel
на изображении непосредственно. Это крайне важно когда setSourceBands
используется начиная с изображения ColorModel
обратится ко всему изображению, а не к подмножеству записанных полос.
setDestinationType
в классе IIOParam
destinationType
- ImageTypeSpecifier
использоваться, чтобы определить целевое расположение и цветной тип.IIOParam.getDestinationType()
public void setDestination(BufferedImage destination)
BufferedImage
использоваться в качестве места назначения для декодируемых пиксельных данных. В настоящий момент изображение набора будет записано read
, readAll
, и readRaster
методы, и ссылка на это будут возвращены теми методами. Пиксельные данные от вышеупомянутых методов будут записаны, запускаясь при смещении, определенном getDestinationOffset
.
Если destination
null
, недавно создаваемый BufferedImage
будет возвращен теми методами.
Во время чтения изображение проверяется, чтобы проверить что ColorModel
и SampleModel
соответствуйте одному из ImageTypeSpecifier
s возвратился из 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
не влияются этим методом; они будут продолжать возвращать размер по умолчанию для изображения. Точно так же, если изображение также размещается рядом, ширина мозаики и высота даются с точки зрения размера по умолчанию. Как правило, ширина и высота должны быть выбраны так, что, отношение ширины к высоте близко приближает формат изображения изображения, как возвращено из ImageReader.getAspectRatio
.
Если этот плагин не позволяет размеру рендеринга быть установленным, UnsupportedOperationException
будет брошен.
Чтобы удалить установку размера рендеринга, передайте в значении null
для size
.
size
- a Dimension
указание на требуемую ширину и высоту.IllegalArgumentException
- если или ширина или высота отрицательны или 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 и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.