JavaTM Platform
Standard Ed. 6

javax.imageio.spi
클래스 ImageReaderSpi

java.lang.Object 
  상위를 확장 javax.imageio.spi.IIOServiceProvider 
      상위를 확장 javax.imageio.spi.ImageReaderWriterSpi 
          상위를 확장 javax.imageio.spi.ImageReaderSpi
모든 구현된 인터페이스:
RegisterableService


public abstract class ImageReaderSpi
extends ImageReaderWriterSpi

ImageReader 의 서비스 프로바이더 인터페이스 (SPI)입니다. 서비스 프로바이더 클래스의 자세한 것은,IIORegistry 클래스의 클래스 코멘트를 참조해 주세요.

각 ImageReaderSpi 는, 관련하는 ImageReader 클래스에 관한 복수의 정보 타입을 제공합니다.

SPI 클래스를 정의한 벤더명으로 클래스의 간결한 설명은,getVendorName,getDescription, 및 getVersion 메소드로 취득할 수 있습니다. 이러한 메소드는, 국제화 해 로케일 고유의 출력을 실시하는 것이 가능합니다. 이러한 메소드의 주된 목적은, pop-up menu등의 리스트 편성에 사용 가능해, 간결하고 판독 가능한 정보를 제공하는 것입니다.

서비스에 관련하는 형식명, 파일접미사(suffix), 및 MIME 타입의 리스트는, 각각 getFormatNames,getFileSuffixes, 및 getMIMETypes 메소드로 취득할 수 있습니다. 이러한 메소드는, 수동의 형식 선택, 파일의 명명, 또는 MIME 관련짓고 (예를 들어, HTTP 경유 또는 전자 메일 첨부의 파일 액세스)에 근거해 특정의 파일 또는 스트림을 디코드할 때, 후보가 되는 ImageReader 의 식별로 사용할 수 있습니다.

특정의 데이터 스트림을 구문 분석 할 수 있을 가능성의 높은 ImageReader 를 판정하기 위한 , 보다 신뢰성의 높은 수단이 canDecodeInput 메소드에 준비되어 있습니다. 서비스 프로바이더는, 이 메소드를 사용해 실제의 스트림 내용을 검증할 수 있습니다.

이 서비스 프로바이더에 관련하는 ImageReader 클래스의 인스턴스는,createReaderInstance 메소드를 호출하는 것으로 취득할 수 있습니다. 네이티브 라이브러리의 로드나 대규모 테이블 작성등의 부하의 높은 초기화는, 적어도 이 메소드가 최초로 불려 갈 때까지 연기할 필요가 있습니다.

관련 항목:
IIORegistry , ImageReader

필드의 개요
protected  Class [] inputTypes
          getInputTypes 로부터 반환되는 Class 객체의 배열로, 처음은 null 입니다.
static Class [] STANDARD_INPUT_TYPE
          getInputTypes 로부터 반환되는 단일 요소의 배열로, 처음은 ImageInputStream.class 가 포함되고 있습니다.
protected  String [] writerSpiNames
          getImageWriterSpiNames 로부터 반환되는 캐릭터 라인의 배열로, 처음은 null 입니다.
 
클래스 javax.imageio.spi. ImageReaderWriterSpi 로부터 상속된 필드
extraImageMetadataFormatClassNames , extraImageMetadataFormatNames , extraStreamMetadataFormatClassNames , extraStreamMetadataFormatNames , MIMETypes , names , nativeImageMetadataFormatClassName , nativeImageMetadataFormatName , nativeStreamMetadataFormatClassName , nativeStreamMetadataFormatName , pluginClassName , suffixes , supportsStandardImageMetadataFormat , supportsStandardStreamMetadataFormat
 
클래스 javax.imageio.spi. IIOServiceProvider 로부터 상속된 필드
vendorName , version
 
생성자 의 개요
protected ImageReaderSpi ()
          공백의 ImageReaderSpi 를 구축합니다.
  ImageReaderSpi (String  vendorName, String  version, String [] names, String [] suffixes, String [] MIMETypes, String  readerClassName, Class [] inputTypes, String [] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String  nativeStreamMetadataFormatName, String  nativeStreamMetadataFormatClassName, String [] extraStreamMetadataFormatNames, String [] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String  nativeImageMetadataFormatName, String  nativeImageMetadataFormatClassName, String [] extraImageMetadataFormatNames, String [] extraImageMetadataFormatClassNames)
          지정된 값세트를 사용해 ImageReaderSpi 를 구축합니다.
 
메소드의 개요
abstract  boolean canDecodeInput (Object  source)
          지정된 소스 객체가 이 리더로 지원되는 형식이다고 보여지는 경우에 true 를 돌려줍니다.
 ImageReader createReaderInstance ()
          이 서비스 프로바이더에 관련하는 ImageReader 구현의 인스턴스를 돌려줍니다.
abstract  ImageReader createReaderInstance (Object  extension)
          이 서비스 프로바이더에 관련하는 ImageReader 구현의 인스턴스를 돌려줍니다.
 String [] getImageWriterSpiNames ()
          이 서비스 프로바이더에 관련하는 ImageReader 가 사용하는 내부 메타데이타 표현을 인식 가능한 ImageWriterSpi 클래스 모든 완전 지정명을 포함한 String 배열, 이런 종류의 ImageWriter 가 지정되어 있지 않은 경우는 null 를 돌려줍니다.
 Class [] getInputTypes ()
          리더의 setInput 메소드의 인수에 사용 가능한 객체의 형태를 나타내는 Class 객체의 배열을 돌려줍니다.
 boolean isOwnReader (ImageReader  reader)
          건네받은 ImageReader 객체가 이 서비스 프로바이더에 관련하는 ImageReader 의 인스턴스의 경우는,true 를 돌려줍니다.
 
클래스 javax.imageio.spi. ImageReaderWriterSpi 로부터 상속된 메소드
getExtraImageMetadataFormatNames , getExtraStreamMetadataFormatNames , getFileSuffixes , getFormatNames , getImageMetadataFormat , getMIMETypes , getNativeImageMetadataFormatName , getNativeStreamMetadataFormatName , getPluginClassName , getStreamMetadataFormat , isStandardImageMetadataFormatSupported , isStandardStreamMetadataFormatSupported
 
클래스 javax.imageio.spi. IIOServiceProvider 로부터 상속된 메소드
getDescription , getVendorName , getVersion , onDeregistration , onRegistration
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

STANDARD_INPUT_TYPE

public static final Class [] STANDARD_INPUT_TYPE
getInputTypes 로부터 반환되는 단일 요소의 배열로, 처음은 ImageInputStream.class 가 포함되고 있습니다.


inputTypes

protected Class [] inputTypes
getInputTypes 로부터 반환되는 Class 객체의 배열로, 처음은 null 입니다.


writerSpiNames

protected String [] writerSpiNames
getImageWriterSpiNames 로부터 반환되는 캐릭터 라인의 배열로, 처음은 null 입니다.

생성자 의 상세

ImageReaderSpi

protected ImageReaderSpi()
공백의 ImageReaderSpi 를 구축합니다. 모든 메소드의 작업 버젼을 제공하기 위한 , 인스턴스 변수의 초기화나 메소드 구현의 오버라이드(override)는, 서브 클래스에서 실시할 필요가 있습니다.


ImageReaderSpi

public ImageReaderSpi(String  vendorName,
                      String  version,
                      String [] names,
                      String [] suffixes,
                      String [] MIMETypes,
                      String  readerClassName,
                      Class [] inputTypes,
                      String [] writerSpiNames,
                      boolean supportsStandardStreamMetadataFormat,
                      String  nativeStreamMetadataFormatName,
                      String  nativeStreamMetadataFormatClassName,
                      String [] extraStreamMetadataFormatNames,
                      String [] extraStreamMetadataFormatClassNames,
                      boolean supportsStandardImageMetadataFormat,
                      String  nativeImageMetadataFormatName,
                      String  nativeImageMetadataFormatClassName,
                      String [] extraImageMetadataFormatNames,
                      String [] extraImageMetadataFormatClassNames)
지정된 값세트를 사용해 ImageReaderSpi 를 구축합니다.

파라미터:
vendorName - 벤더명 (null 이외의 String)
version - 버젼 식별자 (null 이외의 String)
names - 형식명을 나타내는 null 이외의 String 배열. 1 개(살) 이상의 엔트리가 존재할 필요가 있는
suffixes - 공통의 파일접미사(suffix)을 나타낸다 String 배열. 접미사(suffix)이 정의되어 있지 않은 경우는, null 를 지정한다. 길이 0 의 배열은 null 에 정규화되는
MIMETypes - 형식의 MIME 타입을 나타낸다 String 배열. MIME 타입이 정의되어 있지 않은 경우는, null 를 지정한다. 길이 0 의 배열은 null 에 정규화되는
readerClassName - 관련한다 ImageReader 클래스의 완전 지정명 (null 이외의 String)
inputTypes - 정당한 입력 타입을 나타내는, 길이 1 이상의 Class 객체의 배열 (null 이외)
writerSpiNames - 관련하는 모든 ImageWriter 의 클래스를 명명하는 String 배열, 또는 null. 길이 0 의 배열은 null 에 정규화되는
supportsStandardStreamMetadataFormat - 스트림메타데이타객체가 표준 메타데이타 형식에서 기술된 트리를 사용 가능한가 어떤가를 나타내는 boolean
nativeStreamMetadataFormatName - getNativeStreamMetadataFormatName 로부터 반환되는 String, 또는 null
nativeStreamMetadataFormatClassName - getNativeStreamMetadataFormat 로부터 반환된다 메타데이타 형식 객체의 인스턴스화로 사용하는 String, 또는 null
extraStreamMetadataFormatNames - getExtraStreamMetadataFormatNames 로부터 반환되는 String 배열, 또는 null. 길이 0 의 배열은 null 에 정규화되는
extraStreamMetadataFormatClassNames - getStreamMetadataFormat 로부터 반환되는 메타데이타 형식 객체의 인스턴스화로 사용하는 String 배열, 또는 null. 길이 0 의 배열은 null 에 정규화되는
supportsStandardImageMetadataFormat - 이메이지메타데이타객체가, 표준의 메타데이타 형식에서 기술된 트리를 사용할 수 있을지 어떨지를 나타내는 boolean
nativeImageMetadataFormatName - getNativeImageMetadataFormatName 로부터 반환된다 String, 또는 null
nativeImageMetadataFormatClassName - getNativeImageMetadataFormat 로부터 반환되는 메타데이타 형식 객체의 인스턴스화로 사용하는 String, 또는 null
extraImageMetadataFormatNames - getExtraImageMetadataFormatNames 로부터 반환된다 String 배열. 길이 0 의 배열은 null 에 정규화되는
extraImageMetadataFormatClassNames - getImageMetadataFormat 로부터 반환되는 메타데이타 형식 객체의 인스턴스화로 사용하는 String 배열, 또는 null. 길이 0 의 배열은 null 에 정규화된다
예외:
IllegalArgumentException - vendorName 가 null 의 경우
IllegalArgumentException - version 가 null 의 경우
IllegalArgumentException - names 가 null 또는 길이 0 의 경우
IllegalArgumentException - readerClassName 가 null 의 경우
IllegalArgumentException - inputTypes 가 null 또는 길이 0 의 경우
메소드의 상세

getInputTypes

public Class [] getInputTypes()
리더의 setInput 메소드의 인수에 사용 가능한 객체의 형태를 나타내는 Class 객체의 배열을 돌려줍니다.

ImageInputStream 로부터의 입력을 받을 뿐(만큼)의 대부분의 리더의 경우,ImageInputStream.class 를 포함한 단일 요소의 배열이 돌려주어집니다.

반환값:
길이 1 이상의 Class 객체의, null 이외의 배열

canDecodeInput

public abstract boolean canDecodeInput(Object  source)
                                throws IOException 
지정된 소스 객체가 이 리더로 지원되는 형식이다고 보여지는 경우에 true 를 돌려줍니다. 이 메소드로부터 true 가 돌려주어져도 read에 성공하는 것은 보증되지 않고, 스트림 내용의 간결한 검증에 근거해 성공의 가능성이 꽤 높다고 보여지는 것에 지나지 않습니다. 소스가 ImageInputStream 의 경우, 구현은 일반적으로 스트림의 최초의 수바이트를 체크해, 이 형식에 관련지을 수 있던 「매직 번호」를 확인합니다. 실제의 read가 개시되어도, 디코딩이 완료할 때까지 언제라도 리더는 실패할 가능성이 있습니다.

다른 ImageReaderSpi 가 객체를 디코드할 수 있을지 어떨지 적절히 판정할 수 있도록(듯이), 객체 상태를 방해하지 않는 것이 중요합니다. 특히, 소스가 ImageInputStream 의 경우,mark/reset 의 페어를 사용해 스트림 위치를 보관 유지할 필요가 있습니다.

거의 모든 스트림의 read를 시도할 가능성이 있는 「raw」등의 형식에서는, 보다 적절한 것보다 우선해 불려 가는 것을 피하기 위해서(때문에),false 를 돌려줄 필요가 있습니다.

source 가 getInputTypes 로부터 반환된 클래스의 머지않아도 아닌 경우, 이 메소드는 false 를 돌려줄 뿐입니다.

파라미터:
source - 디코드되는 객체. 일반적으로은 ImageInputStream
반환값:
이 스트림을 디코드 가능한 경우는 true
예외:
IllegalArgumentException - source 가 null 의 경우
IOException - 스트림의 read중에 입출력 에러가 발생했을 경우

createReaderInstance

public ImageReader  createReaderInstance()
                                 throws IOException 
이 서비스 프로바이더에 관련하는 ImageReader 구현의 인스턴스를 돌려줍니다. 반환되는 객체의 초기 상태는,reset 메소드의 호출 후와 같은 상태입니다.

디폴트의 구현에서는,createReaderInstance(null) 를 돌려줄 뿐입니다.

반환값:
ImageReader 인스턴스
예외:
IOException - 리더 클래스의 로드나 초기화, 또는 리더 객체의 인스턴스화나 초기화로 에러가 발생했을 경우

createReaderInstance

public abstract ImageReader  createReaderInstance(Object  extension)
                                          throws IOException 
이 서비스 프로바이더에 관련하는 ImageReader 구현의 인스턴스를 돌려줍니다. 반환되는 객체의 초기 상태는,reset 메소드의 호출 후와 같은 상태입니다.

구축시에 Object 를 플러그 인에 제공할 수 있습니다. 객체의 특성은, 플러그 인에 따라서 다릅니다.

일반적으로, 플러그 인은 return new MyImageReader(this) 등의 코드를 사용해 이 메소드를 구현합니다.

파라미터:
extension - 플러그 인 고유의 확장 객체. null 도 가능
반환값:
ImageReader 인스턴스
예외:
IOException - 리더의 인스턴스화에 실패했을 경우
IllegalArgumentException - 확장 객체가 적절하지 않은 것을 나타내기 위해서(때문에) ImageReader 의 생성자 이 IllegalArgumentException 을 throw 하는 경우

isOwnReader

public boolean isOwnReader(ImageReader  reader)
건네받은 ImageReader 객체가 이 서비스 프로바이더에 관련하는 ImageReader 의 인스턴스의 경우는,true 를 돌려줍니다.

디폴트의 구현에서는, 인수 reader 의 완전 지정 클래스명으로 생성자 에게 건네진 클래스명을 비교합니다. 한층 더 고도의 체크가 필요한 경우는, 이 메소드를 오버라이드(override) 할 수 있습니다.

파라미터:
reader - ImageReader 인스턴스
반환값:
reader 가 인식되는 경우는 true
예외:
IllegalArgumentException - reader 가 null 의 경우

getImageWriterSpiNames

public String [] getImageWriterSpiNames()
이 서비스 프로바이더에 관련하는 ImageReader 가 사용하는 내부 메타데이타 표현을 인식 가능한 ImageWriterSpi 클래스 모든 완전 지정명을 포함한 String 배열, 이런 종류의 ImageWriter 가 지정되어 있지 않은 경우는 null 를 돌려줍니다. null 이외의 값이 반환되는 경우는, 0 이외의 길이가 됩니다.

배열의 최초의 항목은,ImageIO.getImageWriter(ImageReader) 로부터 반환되는 ImageWriter 의 인스턴스화로 사용되기 (위해)때문에, 「우선된다」라이터의 서비스 프로바이더명이 아니면 안됩니다.

이 기구는,ImageReader 로 생성된 픽셀 이외의 메타데이타 (IIOTreeInfo 를 참조)의 내부 구조를 인식하는 ImageWriters 의 취득에 사용할 수 있습니다. ImageReader 로부터 이 데이터를 취득해, 이 메소드로 취득하고 싶은 차이인가의 ImageWriters 에 건네주면(자), 클라이언트 프로그램으로, 모든 메타데이타를 보관 유지하면서, 이미지의 read나 변경, 쓰기 반환을 실시할 수가 있어 메타데이타의 내부 구조나 이미지 형식조차 아무것도 의식할 필요는 없습니다.

반환값:
ImageWriterSpi 의 이름을 포함한다 길이 1 이상의 String 의 배열, 또는 null
관련 항목:
ImageIO.getImageWriter(ImageReader)

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 도 참조해 주세요.