JavaTM Platform
Standard Ed. 6

javax.imageio.plugins.jpeg
클래스 JPEGImageWriteParam

java.lang.Object 
  상위를 확장 javax.imageio.IIOParam 
      상위를 확장 javax.imageio.ImageWriteParam 
          상위를 확장 javax.imageio.plugins.jpeg.JPEGImageWriteParam


public class JPEGImageWriteParam
extends ImageWriteParam

이 클래스는, 편입 JPEG 라이터 플러그 인을 사용하는 경우에 JPEG 의 수량화 테이블 및 하프맨 테이블을 설정하는 기능과 이미지용으로 최적화된 하프맨 테이블을 계산하도록(듯이) 요구하는 기능을 추가합니다. 이 클래스의 인스턴스는, 편입 JPEG ImageWritergetDefaultImageWriteParam 메소드로부터 돌려주어집니다.

이것들을 추가하는 주된 목적은, 테이블의 지정을, 생략 된 스트림의 encode로 사용할 수 있도록(듯이) 하는 것입니다. 편입 JPEG 라이터는, 일반적으로의 ImageWriteParam 도 받아들입니다. 이 경우, 라이터는 필요한 테이블을 내부적으로 구축합니다.

어느 쪽의 경우도,ImageWriteParam 의 품질의 설정에는, 기본이 되는 라이브러리의 경우와 같은 의미가 있습니다. 1.00 은 모든 1 의 수량화 테이블을, 0.75 는 「표준의」시각적으로 손실이 없는 수량화 테이블을, 0.00 은 모든 255 의 수량화 테이블을 의미합니다.

생략 된 스트림의 테이블은 일반적으로, 테이블만을 포함한 생략 된 스트림을 최초로 기입하는 것으로 지정됩니다만, 어플리케이션에 따라서는 테이블이 미리 고정되고 있습니다. 이 클래스에 의해, 테이블을 클라이언트 코드로부터 직접 지정할 수 있게 됩니다.

일반적으로, 테이블은 라이터에게 건네진 IIOMetadata 객체로 지정되어 이러한 객체에 포함되는 테이블은 모두 스트림에 기입해집니다. 메타데이타에 테이블이 지정되어 있지 않은 경우는, 생략 된 스트림이 기입해집니다. 메타데이타에 테이블이 포함되지 않고,JPEGImageWriteParam 로 테이블이 지정되지 않는 경우, 생략 된 스트림은 「표준의」시각적으로 손실이 없는 테이블을 사용해 encode 됩니다. 최초로 테이블을 스트림에 기입하지 말고, 생략 된 스트림을 기입할 필요가 있는 경우는, 테이블의 지정에 이 클래스가 필요합니다. 이 클래스를 사용하기 위해서는, 라이터에게 건네진 메타데이타객체에 테이블을 포함해도, 스트림메타데이타를 제공해도 갈 수 있지 않습니다. 디폴트의 테이블의 상세한 것에 대하여는,JPEGQTableJPEGHuffmanTable 를 참조해 주세요.

라이터의 getDefaultWriteParam 메소드로부터 반환되는 디폴트의 JPEGImageWriteParam 에는 테이블은 포함되고 있지 않습니다. 디폴트의 테이블은, 라이터로부터 반환되는 디폴트의 IIOMetadata 객체에 포함되어 있습니다.

메타데이타에 테이블이 포함되고 있는 경우,JPEGImageWriteParam 로 지정되는 테이블은 무시됩니다. 게다가 테이블세트가 기입해지면(자), 같은 스트림 또는 다른 스트림에의 그 후의 기입에 대해서 그러한 테이블을 오버라이드(override) 할 수 있는 것은, 메타데이타내의 테이블 뿐입니다. 이 클래스를 사용해 새로운 테이블을 지정하기 위해서는, 라이터의 reset 메소드를 호출할 필요가 있습니다.

편입 JPEG 플러그 인의 조작의 상세한 것에 대하여는,「JPEG 메타데이타 형식의 스펙과 사용법에 관한 주기」를 참조해 주세요.


필드의 개요
 
클래스 javax.imageio. ImageWriteParam 로부터 상속된 필드
canOffsetTiles , canWriteCompressed , canWriteProgressive , canWriteTiles , compressionMode , compressionQuality , compressionType , compressionTypes , locale , MODE_COPY_FROM_METADATA , MODE_DEFAULT , MODE_DISABLED , MODE_EXPLICIT , preferredTileSizes , progressiveMode , tileGridXOffset , tileGridYOffset , tileHeight , tileWidth , tilingMode , tilingSet
 
클래스 javax.imageio. IIOParam 로부터 상속된 필드
controller , defaultController , destinationOffset , destinationType , sourceBands , sourceRegion , sourceXSubsampling , sourceYSubsampling , subsamplingXOffset , subsamplingYOffset
 
생성자 의 개요
JPEGImageWriteParam (Locale  locale)
          JPEGImageWriteParam 를 구축합니다.
 
메소드의 개요
 boolean areTablesSet ()
          현재 테이블이 설정되어 있는 경우는 true 를 돌려줍니다.
 JPEGHuffmanTable [] getACHuffmanTables ()
          setEncodeTables 에의 직전의 호출로 설정된 AC 하프맨 테이블의 배열의 카피를 돌려줍니다.
 String [] getCompressionQualityDescriptions ()
          압축 품질 레벨의 표시 또는 설정을 위해서(때문에), 사용자 인터페이스의 일부로서 getCompressionQualityValues 와 함께 사용할 수 있는 String 의 배열을 돌려줍니다.
 float[] getCompressionQualityValues ()
          압축 품질 레벨의 표시 또는 설정을 위한 사용자 인터페이스의 일부로서getCompressionQualityDescriptions 와 함께 사용할 수 있는 float 의 배열을 돌려줍니다.
 JPEGHuffmanTable [] getDCHuffmanTables ()
          setEncodeTables 에의 직전의 호출로 설정된 DC 하프맨 테이블의 배열의 카피를 돌려줍니다.
 boolean getOptimizeHuffmanTables ()
          setOptimizeHuffmanTables 의 직전의 호출에게 건네진 값을 돌려줍니다.
 JPEGQTable [] getQTables ()
          setEncodeTables 에의 직전의 호출로 설정된 수량화 테이블의 배열의 카피를 돌려줍니다.
 boolean isCompressionLossless ()
          JPEG 플러그 인은 손실의 발생하는 압축만을 지원하므로,false 를 돌려줍니다.
 void setEncodeTables (JPEGQTable [] qTables, JPEGHuffmanTable [] DCHuffmanTables, JPEGHuffmanTable [] ACHuffmanTables)
          생략 된 스트림의 encode로 사용하기 위해서 수량화 테이블 및 하프맨 테이블을 설정합니다.
 void setOptimizeHuffmanTables (boolean optimize)
          기입 처리의 일부로서 최적화된 이미지용 하프맨 테이블을 생성하도록(듯이) 라이터에 통지합니다.
 void unsetCompression ()
          이전의 모든 압축 품질 설정을 삭제합니다.
 void unsetEncodeTables ()
          현재 설정되어 있는 수량화 테이블 및 하프맨 테이블을 삭제합니다.
 
클래스 javax.imageio. ImageWriteParam 로부터 상속된 메소드
canOffsetTiles , canWriteCompressed , canWriteProgressive , canWriteTiles , getBitRate , getCompressionMode , getCompressionQuality , getCompressionType , getCompressionTypes , getLocale , getLocalizedCompressionTypeName , getPreferredTileSizes , getProgressiveMode , getTileGridXOffset , getTileGridYOffset , getTileHeight , getTileWidth , getTilingMode , setCompressionMode , setCompressionQuality , setCompressionType , setProgressiveMode , setTiling , setTilingMode , unsetTiling
 
클래스 javax.imageio. IIOParam 로부터 상속된 메소드
activateController , getController , getDefaultController , getDestinationOffset , getDestinationType , getSourceBands , getSourceRegion , getSourceXSubsampling , getSourceYSubsampling , getSubsamplingXOffset , getSubsamplingYOffset , hasController , setController , setDestinationOffset , setDestinationType , setSourceBands , setSourceRegion , setSourceSubsampling
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

JPEGImageWriteParam

public JPEGImageWriteParam(Locale  locale)
JPEGImageWriteParam 를 구축합니다. 타일링은 지원되지 않습니다. 프로그래시브 인코딩은 지원됩니다. 디폴트의 프로그래시브 모드는 MODE_DISABLED 입니다. JPEG 로 불리는 1 개의 압축 형식이 지원됩니다. 디폴트의 압축 품질은 0.75 입니다.

파라미터:
locale - 압축 방식명과 품질 설명을 로컬라이즈 하기 위해서 슈퍼 클래스가 사용하는 Locale, 또는 null
메소드의 상세

unsetCompression

public void unsetCompression()
이전의 모든 압축 품질 설정을 삭제합니다.

디폴트의 구현은, 압축 품질을 0.75F 에 리셋 합니다.

오버라이드(override):
클래스 ImageWriteParam 내의 unsetCompression
예외:
IllegalStateException - 압축 모드가 MODE_EXPLICIT 가 아닌 경우
관련 항목:
ImageWriteParam.setCompressionType(java.lang.String) , ImageWriteParam.setCompressionQuality(float)

isCompressionLossless

public boolean isCompressionLossless()
JPEG 플러그 인은 손실의 발생하는 압축만을 지원하므로,false 를 돌려줍니다.

오버라이드(override):
클래스 ImageWriteParam 내의 isCompressionLossless
반환값:
false
예외:
IllegalStateException - 압축 모드가 MODE_EXPLICIT 가 아닌 경우

getCompressionQualityDescriptions

public String [] getCompressionQualityDescriptions()
클래스 ImageWriteParam 의 기술:
압축 품질 레벨의 표시 또는 설정을 위해서(때문에), 사용자 인터페이스의 일부로서 getCompressionQualityValues 와 함께 사용할 수 있는 String 의 배열을 돌려줍니다. 인덱스 i 를 가지는 String 는,getCompressionQualityValues[i] 로부터 getCompressionQualityValues[i + 1] 까지의 품질 레벨 범위의 개요를 제공합니다. getCompressionQualityValues 로부터 반환된 배열의 길이는,getCompressionQualityDescriptions 로부터 반환된 배열의 길이보다 , 항상 길어집니다.

예로서 캐릭터 라인 「Good」, 「Better」, 「Best」는, 범위 [0, . 33),[. 33, . 66),[. 66, 1.0] 에 관련지을 수가 있습니다. 이 경우,getCompressionQualityDescriptions{ "Good", "Better", "Best" } 를 돌려주어,getCompressionQualityValues{ 0.0F, . 33F, . 66F, 1.0F } 를 돌려줍니다.

개요를 사용할 수 없는 경우,null 가 돌려주어집니다. getCompressionQualityValues 로부터 null 가 반환되는 경우, 이 메소드는 null 도 돌려줄 필요가 있습니다.

개요는,null 가 아닌 경우,getLocale 가 돌려준 Locale 에 대해서 로컬라이즈 할 필요가 있습니다.

복수의 압축 방식이 있어, 그 어느 것도가 설정되어 있지 않은 경우,IllegalStateException 가 throw 됩니다.

디폴트 구현에서는, 압축이 지원되는지, 압축 모드가 MODE_EXPLICIT 일까를 조사합니다. 이것에 들어맞는 경우,getCompressionTypes()null 때, 혹은 getCompressionType()null 가 아닐 때에 null 를 돌려줍니다.

오버라이드(override):
클래스 ImageWriteParam 내의 getCompressionQualityDescriptions
반환값:
압축 품질 레벨의 로컬라이즈 되었다 개요를 포함한 String 의 배열
관련 항목:
ImageWriteParam.getCompressionQualityValues()

getCompressionQualityValues

public float[] getCompressionQualityValues()
클래스 ImageWriteParam 의 기술:
압축 품질 레벨의 표시 또는 설정을 위한 사용자 인터페이스의 일부로서getCompressionQualityDescriptions 와 함께 사용할 수 있는 float 의 배열을 돌려줍니다. 자세한 것은,getCompressionQualityDescriptions 를 참조해 주세요.

개요를 사용할 수 없는 경우,null 가 돌려주어집니다. getCompressionQualityDescriptions 로부터 null 가 반환되는 경우, 이 메소드는 null 도 돌려줄 필요가 있습니다.

복수의 압축 방식이 있어, 그 어느 것도가 설정되어 있지 않은 경우,IllegalStateException 가 throw 됩니다.

디폴트 구현에서는, 압축이 지원되는지, 압축 모드가 MODE_EXPLICIT 일까를 조사합니다. 이것에 들어맞는 경우,getCompressionTypes()null 때, 혹은 getCompressionType()null 가 아닐 때에 null 를 돌려줍니다.

오버라이드(override):
클래스 ImageWriteParam 내의 getCompressionQualityValues
반환값:
getCompressionQualityDescriptions 로부터의 String 로 기술되는, 압축 품질 레벨간의 범위를 나타낸다 float 의 배열
관련 항목:
ImageWriteParam.getCompressionQualityDescriptions()

areTablesSet

public boolean areTablesSet()
현재 테이블이 설정되어 있는 경우는 true 를 돌려줍니다.

반환값:
테이블이 존재하는 경우는 true

setEncodeTables

public void setEncodeTables(JPEGQTable [] qTables,
                            JPEGHuffmanTable [] DCHuffmanTables,
                            JPEGHuffmanTable [] ACHuffmanTables)
생략 된 스트림의 encode로 사용하기 위해서 수량화 테이블 및 하프맨 테이블을 설정합니다. 각 타입의 테이블은 최대로 4 개입니다. 메타데이타로 테이블이 지정되면(자), 이러한 테이블은 무시됩니다. 인수는 모두 null 이외가 아니면 안됩니다. 하프맨 테이블의 2 개의 배열의 요소수는 같지 않으면 안됩니다. 메타데이타의 프레임 및 스캔 헤더의 테이블 지시자는, 이러한 배열의 인덱스와 동등하다라고 상정됩니다. 인수 배열은, 이 메소드에 의해 카피됩니다.

파라미터:
qTables - 수량화 테이블 객체의 배열
DCHuffmanTables - 하프맨 테이블 객체의 배열
ACHuffmanTables - 하프맨 테이블 객체의 배열
예외:
IllegalArgumentException - 몇개의 인수가 null 인지, 4 개(살)보다 많은 요소를 가지는 경우, 또는 DC 테이블과 AC 테이블의 수가 다른 경우
관련 항목:
unsetEncodeTables()

unsetEncodeTables

public void unsetEncodeTables()
현재 설정되어 있는 수량화 테이블 및 하프맨 테이블을 삭제합니다.

관련 항목:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getQTables

public JPEGQTable [] getQTables()
setEncodeTables 에의 직전의 호출로 설정된 수량화 테이블의 배열의 카피를 돌려줍니다. 현재 테이블이 설정되어 있지 않은 경우는 null 를 돌려줍니다.

반환값:
JPEGQTable 객체의 배열, 또는 null
관련 항목:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getDCHuffmanTables

public JPEGHuffmanTable [] getDCHuffmanTables()
setEncodeTables 에의 직전의 호출로 설정된 DC 하프맨 테이블의 배열의 카피를 돌려줍니다. 현재 테이블이 설정되어 있지 않은 경우는 null 를 돌려줍니다.

반환값:
JPEGHuffmanTable 객체의 배열, 또는 null
관련 항목:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getACHuffmanTables

public JPEGHuffmanTable [] getACHuffmanTables()
setEncodeTables 에의 직전의 호출로 설정된 AC 하프맨 테이블의 배열의 카피를 돌려줍니다. 현재 테이블이 설정되어 있지 않은 경우는 null 를 돌려줍니다.

반환값:
JPEGHuffmanTable 객체의 배열, 또는 null
관련 항목:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

setOptimizeHuffmanTables

public void setOptimizeHuffmanTables(boolean optimize)
기입 처리의 일부로서 최적화된 이미지용 하프맨 테이블을 생성하도록(듯이) 라이터에 통지합니다. 디폴트는 false 입니다. 이 플래그가 true 로 설정되어 있는 경우는, 메타데이타로 지정된 모든 테이블을 오버라이드(override) 합니다. 이것은, 이 플래그를 true 로 설정해 기입해진 이미지에는 항상 하프맨 테이블이 포함된다고 하는 것입니다.

파라미터:
optimize - 기입시에 최적화된 하프맨 테이블을 생성할지 어떨지를 나타내는 boolean 치
관련 항목:
getOptimizeHuffmanTables()

getOptimizeHuffmanTables

public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables 의 직전의 호출에게 건네진 값을 돌려줍니다. setOptimizeHuffmanTables 가 불려 가지 않았던 경우는 false 를 돌려줍니다.

반환값:
라이터가 최적화된 하프맨 테이블을 생성하는 경우는 true
관련 항목:
setOptimizeHuffmanTables(boolean)

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