JavaTM Platform
Standard Ed. 6

javax.imageio
클래스 ImageReadParam

java.lang.Object 
  상위를 확장 javax.imageio.IIOParam 
      상위를 확장 javax.imageio.ImageReadParam
직계의 기존의 서브 클래스:
JPEGImageReadParam


public class ImageReadParam
extends IIOParam

스트림이 복호화 되는 방법을 기술하는 클래스입니다. 이 클래스 또는 서브 클래스의 인스턴스는,ImageReader 의 인스턴스에 규정의 「방법」에 대한 정보를 제공하기 위해서 사용됩니다.

파일 또는 스트림의 일부로서 encode 된 이미지는, 공간적인 치수의 폭과 높이, 밴드수, 및 프로그래시브 디코딩 패스의 수 등, 복수의 차원으로 확대하고 생각됩니다. 이 클래스는, 이러한 모든 차원에서, 연속적인 이미지의 (하이퍼) 구형 서브 영역을 사용해, 복호화의 선택을 가능하게 합니다. 게다가 공간적인 치수는 비연속적으로 솎아냄 할 수 있습니다. 마지막으로, 색 및 형식의 변환은,BufferedImage 을 제공하는지,ImageTypeSpecifier 를 사용하는 것으로써, 목적지 이미지의 ColorModelSampleModel 를 제어해 지정됩니다.

ImageReadParam 객체는, Java Image I/O 시스템의 문맥으로, 이미지 또는 이미지세트를 스트림로부터 입력으로 변환하는 방법을 지정하기 위해서 사용합니다. 특정의 이미지 형식의 플러그 인은,ImageReader 구현의 getDefaultReadParam 메소드로부터 ImageReadParam 의 인스턴스를 돌려줍니다.

ImageReadParam 의 인스턴스에 의해 관리되는 상태는, 복호화 되는 특정의 이미지로부터 독립하고 있습니다. 실제로 복호화를 하는 경우, read 파라미터로 설정된 값은, 스트림로부터 복호화중의 이미지의 실제의 프로퍼티 및 복호화 된 픽셀 데이터를 받는 목적지 BufferedImage 에 결합됩니다. 예를 들어,setSourceRegion 를 사용해 설정된 소스 영역은, 실제의 유효한 소스 영역에 최초로 교차합니다. 결과는,getDestinationOffset 로 반환되는 값에 의해 변환되어 실제의 유효한 목적지 영역에 교차하는 결과의 구형이, 기입해지는 목적지 영역이 됩니다.

ImageReadParam 에 의해 지정된 파라미터는, 다음과 같이 이미지에 적용됩니다. 최초로, draw의 사이즈가 setSourceRenderSize 에 의해 설정되어 있는 경우, 복호화 되는 이미지 전체는 getSourceRenderSize 에 의해 지정된 사이즈로 draw 됩니다. 그 이외의 경우, 이미지는 ImageReader.getWidthImageReader.getHeight 에 의해 지정된 실제의 사이즈로 draw 됩니다.

다음에, 이미지는 getSourceXOffset,getSourceYOffset,getSourceWidth, 및 getSourceHeight 에 의해 지정된 소스 영역에 클립 됩니다.

결과의 영역은,IIOParam.setSourceSubsampling 에 의해 지정된 계수에 의해 솎아냄 됩니다. 최초의 픽셀, 행 근처 픽셀수, 및 행수는, 모두 서브 샘플링 설정에 의존합니다. 폭 w, 높이 h 의 결과의 구형의 최소 X 좌표와 Y 좌표 (minX,minY)를 호출합니다.

이 구형은, (getDestinationOffset(). x,getDestinationOffset(). y)에 오프셋(offset) 되어 목적지 경계에 클립 됩니다. 목적지 이미지가 설정되어 있지 않은 경우, 목적지는, 소스 영역의 모든 픽셀을 목적지에 기입할 수 있도록(듯이), 폭 getDestinationOffset(). x + w, 높이 getDestinationOffset(). y + h 에 정의됩니다.

서브 샘플링 후에, 목적지 이미지내에 배치되어 getSourceMinProgressivePassgetSourceNumProgressivePasses 에 의해 지정되는 프로그래시브 패스의 1 개에 기입해지는 픽셀은, 다음의 순서에게 건네집니다.

마지막으로, 각 픽셀의 소스 샘플은 setDestinationBands 의 코멘트에 기술되는 알고리즘을 사용해, 목적지 밴드에 매핑 됩니다.

플러그 인의 기입측은, 플러그 인 고유의 추가의 인터페이스를 구현하는 서브 클래스를 제공하는 것으로써,ImageReadParam 의 기능을 확장할 수 있습니다. 어느 인터페이스가 이용 가능한가, 그것이 어떻게 사용될까는, 플러그 인에 의합니다. 읽기측은, 인식하지 않는 ImageReadParam 서브 클래스의 확장 기능을 그대로 무시합니다. 또,getDefaultReadParam 를 개입시켜, 읽기측 자체의 ImageReadParam 인스턴스를 작성하는 경우, 일반적으로, 사용 불가인 옵션 기능은 모두 무시됩니다.

쿼리메소드는, 장래를 위해서(때문에) 준비되어 있는 경우를 제외해,ImageReader 의 모든 구현으로 지원될 필요가 있습니다. 예를 들어, 소스의 draw 사이즈는 생략 가능합니다만, 서브 샘플링은 지원될 필요가 있습니다.

관련 항목:
ImageReader , ImageWriter , ImageWriteParam

필드의 개요
protected  boolean canSetSourceRenderSize
          이 ImageReadParam 가 소스의 draw 치수를 설정할 수 있는 경우는 true 입니다.
protected  BufferedImage destination
          현재의 목적지 BufferedImage, 또는 아무것도 설정되어 있지 않은 경우는 null 입니다.
protected  int[] destinationBands
          int 의 배열로서의, 사용하는 목적지 밴드세트입니다.
protected  int minProgressivePass
          소스로부터 읽어내는 프로그래시브 패스의 최소 인덱스입니다.
protected  int numProgressivePasses
          소스로부터 읽어내는 프로그래시브 패스의 최대수입니다.
protected  Dimension sourceRenderSize
          canSetSourceRenderSizetrue 의 경우, 목적의 소스 draw의 폭과 높이입니다.
 
클래스 javax.imageio. IIOParam 로부터 상속된 필드
controller , defaultController , destinationOffset , destinationType , sourceBands , sourceRegion , sourceXSubsampling , sourceYSubsampling , subsamplingXOffset , subsamplingYOffset
 
생성자 의 개요
ImageReadParam ()
          ImageReadParam 를 구축합니다.
 
메소드의 개요
 boolean canSetSourceRenderSize ()
          이 읽기측이, 복호화 프로세스의 일부로서setSourceRenderSize 메소드에 의해, 소스 이미지를 임의의 사이즈로 draw 할 수 있도록(듯이) 하는 경우,true 를 돌려줍니다.
 BufferedImage getDestination ()
          setDestination 메소드에 의해 설정된 BufferedImage, 또는 아무것도 설정되어 있지 않은 경우는 null 를 돌려줍니다.
 int[] getDestinationBands ()
          데이터가 배치되고 있는 밴드 인덱스세트를 돌려줍니다.
 int getSourceMaxProgressivePass ()
          getSourceNumProgressivePassesInteger.MAX_VALUE 와 동일한 경우,Integer.MAX_VALUE 를 돌려줍니다.
 int getSourceMinProgressivePass ()
          복호화 되는 최초의 프로그래시브 패스의 인덱스를 돌려줍니다.
 int getSourceNumProgressivePasses ()
          복호화 되는 프로그래시브 패스의 수를 돌려줍니다.
 Dimension getSourceRenderSize ()
          setSourceRenderSize 메소드에 의해 설정되어 있는 경우, 복호화의 사이에 draw 되도록(듯이), 이미지의 폭과 높이를 돌려줍니다.
 void setDestination (BufferedImage  destination)
          복호화 되는 픽셀 데이터의 목적지로서 사용하는 BufferedImage 를 제공합니다.
 void setDestinationBands (int[] destinationBands)
          데이터가 배치되고 있는 목적지 밴드의 인덱스를 설정합니다.
 void setDestinationType (ImageTypeSpecifier  destinationType)
          ImageTypeSpecifier 를 사용해, 이용하고 싶은 이미지 형식을 목적지 이미지로 설정합니다.
 void setSourceProgressivePasses (int minPass, int numPasses)
          복호화 되는 프로그래시브 패스의 범위를 설정합니다.
 void setSourceRenderSize (Dimension  size)
          이미지를 임의의 사이즈로 draw 할 수 있는 경우, 소스의 폭과 높이가 지정된 값으로 설정합니다.
 
클래스 javax.imageio. IIOParam 로부터 상속된 메소드
activateController , getController , getDefaultController , getDestinationOffset , getDestinationType , getSourceBands , getSourceRegion , getSourceXSubsampling , getSourceYSubsampling , getSubsamplingXOffset , getSubsamplingYOffset , hasController , setController , setDestinationOffset , setSourceBands , setSourceRegion , setSourceSubsampling
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

canSetSourceRenderSize

protected boolean canSetSourceRenderSize
ImageReadParam 가 소스의 draw 치수를 설정할 수 있는 경우는 true 입니다. 디폴트의 값은 false 입니다. 서브 클래스는 수동으로 이 값을 설정할 필요가 있습니다.

소스의 draw 사이즈의 설정을 지원하지 않는 ImageReader 는, 이 값을 false 로 설정할 필요가 있습니다.


sourceRenderSize

protected Dimension  sourceRenderSize
canSetSourceRenderSizetrue 의 경우, 목적의 소스 draw의 폭과 높이입니다. 그렇지 않은 경우는 null 입니다.

소스의 draw 사이즈의 설정을 지원하지 않는 ImageReader 는, 이 값을 무시합니다.


destination

protected BufferedImage  destination
현재의 목적지 BufferedImage, 또는 아무것도 설정되어 있지 않은 경우는 null 입니다. 디폴트의 값은 null 입니다.


destinationBands

protected int[] destinationBands
int 의 배열로서의, 사용하는 목적지 밴드세트입니다. 디폴트의 값은 null 입니다. 이것은, 모든 목적지 밴드가 차례로 기입해지는 것을 나타냅니다.


minProgressivePass

protected int minProgressivePass
소스로부터 읽어내는 프로그래시브 패스의 최소 인덱스입니다. 디폴트의 값은 0 으로 설정됩니다. 이것은, 사용 가능한 최초의 패스로부터 개시하는 패스가 복호화 되는 것을 나타냅니다.

서브 클래스는, 이 값이 부가 되지 않게 할 필요가 있습니다.


numProgressivePasses

protected int numProgressivePasses
소스로부터 읽어내는 프로그래시브 패스의 최대수입니다. 디폴트의 값은 Integer.MAX_VALUE 로 설정됩니다. 이것은, 사용 가능한 마지막 패스까지 복호화 되는 것을 나타냅니다.

서브 클래스는, 이 값이 정말로 되도록(듯이) 할 필요가 있습니다. 게다가 이 값이 Integer.MAX_VALUE 가 아닌 경우,minProgressivePass + numProgressivePasses - 1Integer.MAX_VALUE 를 넘어서는 안됩니다.

생성자 의 상세

ImageReadParam

public ImageReadParam()
ImageReadParam 를 구축합니다.

메소드의 상세

setDestinationType

public void setDestinationType(ImageTypeSpecifier  destinationType)
클래스 IIOParam 의 기술:
ImageTypeSpecifier 를 사용해, 이용하고 싶은 이미지 형식을 목적지 이미지로 설정합니다.

read시에, 이 메소드를 사용해 목적지의 레이아웃이 설정되었을 경우,ImageReader read 메소드의 각 호출은, 주어진 타입의 지시자에 의해 지정된 형식을 사용해, 새로운 BufferedImage 를 돌려줍니다. 부작용으로서ImageReadParam.setDestination(BufferedImage) 에 의해 설정되는 모든 목적지 BufferedImage 는, 목적지로서 설정되지 않게 됩니다. 바꾸어 말하면(자), 이 메소드는 setDestination((BufferedImage) null) 의 호출이라고 생각할 수도 있습니다.

기입시에, 목적지의 타입은 이미지의 칼라 타입을 결정하기 위해서(때문에) 사용되는 경우가 있습니다. SampleModel 정보는 무시되어,null 가 됩니다. 예를 들어, 4 밴드의 이미지는 CMYK 또는 RGBA 데이터의 어느쪽이든으로 나타낼 수 있습니다. 목적지의 타입이 설정되었을 경우, 그 ColorModel 는 이미지 자체에 있는 모든 ColorModel 를 오버라이드(override) 합니다. 이것은, 이미지의 ColorModel 가, 기입해진 밴드의 부분집합은 아니고 이미지 전체를 참조하므로,setSourceBands 를 사용하는 경우에 중요합니다.

오버라이드(override):
클래스 IIOParam 내의 setDestinationType
파라미터:
destinationType - 목적지의 레이아웃과 칼라 타입을 결정하기 위해서(때문에) 사용하는 ImageTypeSpecifier
관련 항목:
IIOParam.getDestinationType()

setDestination

public void setDestination(BufferedImage  destination)
복호화 되는 픽셀 데이터의 목적지로서 사용하는 BufferedImage 를 제공합니다. 현재 설정되어 있는 이미지는,read,readAll, 및 readRaster 메소드에 의해 기입해져 이것에 대한 참조는 이러한 메소드에 의해 돌려주어집니다.

상술의 메소드로부터의 픽셀 데이터는,getDestinationOffset 에 의해 지정되는 좌표의 개시시에 기입해집니다.

destinationnull 의 경우, 새롭게 작성된 BufferedImage 는, 이러한 메소드에 의해 돌려주어집니다.

read시에, 이미지의 ColorModelSampleModel 가,ImageReadergetImageTypes 메소드로부터 반환되는 ImageTypeSpecifier 의 1 개에 대응하는 것을 확인하기 위해서 검사됩니다. 대응하지 않는 경우, 읽기측은 IIOException 를 throw 합니다.

파라미터:
destination - 기입해지는 BufferedImage, 또는 null
관련 항목:
getDestination()

getDestination

public BufferedImage  getDestination()
setDestination 메소드에 의해 설정된 BufferedImage, 또는 아무것도 설정되어 있지 않은 경우는 null 를 돌려줍니다.

반환값:
기입해지는 BufferedImage
관련 항목:
setDestination(java.awt.image.BufferedImage)

setDestinationBands

public void setDestinationBands(int[] destinationBands)
데이터가 배치되고 있는 목적지 밴드의 인덱스를 설정합니다. 중복 하는 인덱스는 사용할 수 없습니다.

null 는, 모든 목적지 밴드가 사용되고 있는 것을 나타냅니다.

목적지 밴드가 지정되지 않는 경우, 목적지 밴드의 부분집합의 선택은, 읽을 출력 이미지의 밴드수에 영향을 주지 않습니다. 작성되는 목적지 이미지는, 이 메소드가 불려 가지 않았는지와 같이, 같은 밴드수를 보관 유지합니다. 목적지 이미지에 다른 밴드수가 필요한 경우,ImageReadParam.setDestination 메소드를 사용해 이미지를 제공할 필요가 있습니다.

목적지 밴드의 최대 인덱스보다 큰 값이 지정되었을 경우, 또는 사용하는 소스 밴드의 수와 목적지 밴드의 수가 다른 경우, 읽어들여 또는 기입해 때에, 읽기측 또는 기입해 측에야는 IllegalArgumentException 가 throw 됩니다. ImageReader.checkReadParamBandSettings 메소드는, 이 테스트를 자동화하기 위해서 사용됩니다.

파라미터:
destinationBands - 사용하는 정수형 밴드 인덱스의 배열
예외:
IllegalArgumentException - destinationBands 가 부 또는 중복 하는 값을 보관 유지하는 경우
관련 항목:
getDestinationBands() , IIOParam.getSourceBands() , ImageReader.checkReadParamBandSettings(javax.imageio.ImageReadParam, int, int)

getDestinationBands

public int[] getDestinationBands()
데이터가 배치되고 있는 밴드 인덱스세트를 돌려줍니다. 값이 설정되어 있지 않은 경우, 모든 목적지 밴드가 사용되고 있는 것을 나타내는 null 가 돌려주어집니다.

반환값:
사용하는 목적지 밴드의 인덱스, 또는 null
관련 항목:
setDestinationBands(int[])

canSetSourceRenderSize

public boolean canSetSourceRenderSize()
이 읽기측이, 복호화 프로세스의 일부로서setSourceRenderSize 메소드에 의해, 소스 이미지를 임의의 사이즈로 draw 할 수 있도록(듯이) 하는 경우,true 를 돌려줍니다. 이 메소드가 false 를 돌려주는 경우,setSourceRenderSize 의 호출은 UnsupportedOperationException 를 throw 합니다.

반환값:
소스 draw 사이즈의 설정을 지원하는 경우는 true
관련 항목:
setSourceRenderSize(java.awt.Dimension)

setSourceRenderSize

public void setSourceRenderSize(Dimension  size)
                         throws UnsupportedOperationException 
이미지를 임의의 사이즈로 draw 할 수 있는 경우, 소스의 폭과 높이가 지정된 값으로 설정합니다. ImageReadergetWidthgetHeight 메소드로부터 반환되는 값은, 이 메소드에 의해 영향을 받지 않는 것에 주의해 주세요. 이것들은, 계속 이미지의 디폴트의 사이즈를 돌려줍니다. 같이 이미지가 타일링 되는 경우도, 타일의 폭과 높이는 디폴트의 사이즈에 의해 지정됩니다.

일반적으로, 폭과 높이는, 폭과 높이의 비율이 ImageReader.getAspectRatio 로부터 반환되는 이미지의 종횡비와 정확하게 근사 하도록(듯이) 선택할 필요가 있습니다.

이 플러그 인으로 draw 사이즈의 설정을 할 수 없는 경우,UnsupportedOperationException 가 throw 됩니다.

draw 사이즈의 설정을 삭제하려면 ,size 에 값 null 를 건네줍니다.

파라미터:
size - 바람직한 폭과 높이를 지정한다 Dimension
예외:
IllegalArgumentException - 폭 또는 높이중 한쪽이 부 또는 0 의 경우
UnsupportedOperationException - 이 플러그 인으로, 이미지의 사이즈 변경이 지원되지 않는 경우
관련 항목:
getSourceRenderSize() , ImageReader.getWidth(int) , ImageReader.getHeight(int) , ImageReader.getAspectRatio(int)

getSourceRenderSize

public Dimension  getSourceRenderSize()
setSourceRenderSize 메소드에 의해 설정되어 있는 경우, 복호화의 사이에 draw 되도록(듯이), 이미지의 폭과 높이를 돌려줍니다. 값 null 는, 아무것도 설정을 하지 않은 것을 나타냅니다.

반환값:
Dimension 로서의, 소스 이미지의 draw 되는 폭과 높이
관련 항목:
setSourceRenderSize(java.awt.Dimension)

setSourceProgressivePasses

public void setSourceProgressivePasses(int minPass,
                                       int numPasses)
복호화 되는 프로그래시브 패스의 범위를 설정합니다. 범위외의 패스는 무시됩니다.

프로그래시브 패스는, 일반적으로 단계적으로 높아지는 실효 해상도로 이미지 전체를 재복호화 합니다. 다만, 이 경우보다 큰 전송 대역폭이 필요하게 됩니다. 무엇보다 일반적인 프로그래시브 인코딩이 사용되는 것은, JPEG 형식의 경우입니다. 이 경우, 연속하는 패스에, 보다 상세한 고주파 이미지 컨텐츠의 표현이 포함됩니다.

복호화 되는 실제의 패스의 수는, 스트림로 사용 가능한 실제의 패스의 수에 근거해, 복호화시로 결정됩니다. 따라서,minPass + numPasses - 1 이 사용 가능한 마지막 패스의 인덱스보다 큰 경우, 복호화는 그 패스로 종료합니다.

Integer.MAX_VALUEnumPasses 의 값은,minPass 보다 전방의 모든 패스가 읽어내지는 것을 나타냅니다. 그렇지 않은 경우, 마지막 패스의 인덱스 (즉,minPass + numPasses - 1)는 Integer.MAX_VALUE 를 넘어서는 안됩니다.

unsetSourceProgressivePasses 메소드는 없습니다. setSourceProgressivePasses(0, Integer.MAX_VALUE) 의 호출에 의해, 같은 효과를 얻을 수 있습니다.

파라미터:
minPass - 복호화 되는 최초의 패스의 인덱스
numPasses - 복호화 되는 패스의 최대수
예외:
IllegalArgumentException - minPass 가 부, numPasses 가 부 또는 0, 또는 numPassesInteger.MAX_VALUE 보다 작고,minPass + numPasses - 1INTEGER.MAX_VALUE 보다 큰 경우
관련 항목:
getSourceMinProgressivePass() , getSourceMaxProgressivePass()

getSourceMinProgressivePass

public int getSourceMinProgressivePass()
복호화 되는 최초의 프로그래시브 패스의 인덱스를 돌려줍니다. 값이 설정되어 있지 않은 경우, 올바른 값 0 이 돌려주어집니다.

반환값:
복호화 되는 최초의 패스의 인덱스
관련 항목:
setSourceProgressivePasses(int, int) , getSourceNumProgressivePasses()

getSourceMaxProgressivePass

public int getSourceMaxProgressivePass()
getSourceNumProgressivePassesInteger.MAX_VALUE 와 동일한 경우,Integer.MAX_VALUE 를 돌려줍니다. 그 이외의 경우,getSourceMinProgressivePass() + getSourceNumProgressivePasses() - 1 을 돌려줍니다.

반환값:
읽어내지는 마지막 패스의 인덱스, 또는 Integer.MAX_VALUE

getSourceNumProgressivePasses

public int getSourceNumProgressivePasses()
복호화 되는 프로그래시브 패스의 수를 돌려줍니다. 값이 설정되어 있지 않은 경우, 올바른 값 Integer.MAX_VALUE 가 돌려주어집니다.

반환값:
복호화 되는 패스의 수
관련 항목:
setSourceProgressivePasses(int, int) , getSourceMinProgressivePass()

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.