|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--java.awt.image.SampleModel | +--java.awt.image.ComponentSampleModel | +--java.awt.image.BandedSampleModel
이 클래스는 반드인타리브화 방식에서 저장되는 이미지 데이터를 나타냅니다. 픽셀의 각 샘플은 DataBuffer 의 데이터 요소에 1 개씩 저장됩니다. 이 클래스는 ComponentSampleModel 을 서브 클래스화합니다만, ComponentSampleModel 와 비교해, 반드인타리브화 방식의 이미지 데이터에 액세스 하는 것보다 효율적인 구현을 제공할 수 있습니다. 통상, 이 클래스는 각 밴드의 샘플 데이터를 DataBuffer 의 다른 뱅크에 저장한 이미지를 처리하는 경우에 사용됩니다. 액세스용 메소드가 제공되고 있기 (위해)때문에, 이미지 데이터를 직접 조작할 수 있습니다. 픽셀 보폭은 같은 주사선상의 같은 밴드의 2 개의 샘플 데이터의 사이에 있는 데이터 배열 요소수입니다. BandedSampleModel 의 픽셀 보폭은 그 1 kr입니다. 주사선 보폭은 지정된 샘플과 다음의 주사선의 같은 열에 있는 대응하는 샘플의 사이의 데이터 배열 요소수입니다. 밴드 오프셋(offset)는 각 밴드가 저장되고 있는 DataBuffer 의 뱅크의 최초의 데이터 배열 요소로부터 그 밴드의 최초의 샘플까지의 데이터 배열 요소수를 나타냅니다. 밴드는 0 으로부터 N-1 입니다. 뱅크 인덱스는 데이터 버퍼의 뱅크와 이미지 데이터의 밴드의 대응을 나타냅니다. 이 클래스는 TYPE_BYTE
,TYPE_USHORT
,TYPE_SHORT
,TYPE_INT
,TYPE_FLOAT
,TYPE_DOUBLE
의 데이터 형식을 서포트합니다.
필드의 개요 |
클래스 java.awt.image. ComponentSampleModel 에서 상속받은 필드 |
bandOffsets , bankIndices , numBands , numBanks , pixelStride , scanlineStride |
클래스 java.awt.image. SampleModel 에서 상속받은 필드 |
dataType , height , width |
생성자의 개요 | |
BandedSampleModel (int dataType,
int w,
int h,
int numBands)
지정된 파라미터를 사용해 BandedSampleModel 를 구축합니다. |
|
BandedSampleModel (int dataType,
int w,
int h,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
지정된 파라미터를 사용해 BandedSampleModel 를 구축합니다. |
메소드의 개요 | |
SampleModel |
createCompatibleSampleModel (int w,
int h)
지정된 폭과 높이를 가지는 새로운 BandedSampleModel 를 작성합니다. |
DataBuffer |
createDataBuffer ()
이 BandedSampleModel 에 대응하는 DataBuffer 를 작성합니다. |
SampleModel |
createSubsetSampleModel (int[] bands)
이 BandedSampleModel 의 밴드의 부분집합을 가지는 새로운 BandedSampleModel 를 작성합니다. |
Object |
getDataElements (int x,
int y,
Object obj,
DataBuffer data)
단일 픽셀의 데이터를, transferType 형의 원시적 배열로서 돌려줍니다. |
int[] |
getPixel (int x,
int y,
int[] iArray,
DataBuffer data)
지정된 픽셀의 모든 샘플을 int 배열로서 돌려줍니다. |
int[] |
getPixels (int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
지정된 구형의 픽셀의 모든 샘플을 int 배열로서 돌려줍니다. |
int |
getSample (int x,
int y,
int b,
DataBuffer data)
(x, y)에 위치하는 픽셀의, 지정된 밴드내의 샘플을 int 로서 돌려줍니다. |
double |
getSampleDouble (int x,
int y,
int b,
DataBuffer data)
(x, y)에 위치하는 픽셀의 지정된 밴드내의 샘플을 double 로서 돌려줍니다. |
float |
getSampleFloat (int x,
int y,
int b,
DataBuffer data)
(x, y)에 위치하는 픽셀의 지정된 밴드내의 샘플을 float 로서 돌려줍니다. |
int[] |
getSamples (int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
지정된 픽셀 구형에 사용하는 샘플을 int 배열로서 돌려줍니다. |
int |
hashCode ()
오브젝트의 해시 코드치를 돌려줍니다. |
void |
setDataElements (int x,
int y,
Object obj,
DataBuffer data)
transferType 형의 원시적 배열로부터, 지정된 DataBuffer 에 있는 단일 픽셀의 데이터를 설정합니다. |
void |
setPixel (int x,
int y,
int[] iArray,
DataBuffer data)
샘플의 int 배열을 입력으로서 사용해 DataBuffer 내의 픽셀을 설정합니다. |
void |
setPixels (int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
배열 요소 마다 1 개의 샘플이 저장되고 있는 int 배열로부터, 픽셀의 구형의 모든 샘플을 설정합니다. |
void |
setSample (int x,
int y,
int b,
double s,
DataBuffer data)
double 를 입력으로서 사용해 DataBuffer 내의 것 (x, y)에 위치하는 픽셀의, 지정된 밴드내의 샘플을 설정합니다. |
void |
setSample (int x,
int y,
int b,
float s,
DataBuffer data)
float 를 입력으로서 사용해 DataBuffer 내의 것 (x, y)에 위치하는 픽셀의, 지정된 밴드내의 샘플을 설정합니다. |
void |
setSample (int x,
int y,
int b,
int s,
DataBuffer data)
int 를 입력으로서 사용해 DataBuffer 내의 것 (x, y)에 위치하는 픽셀의, 지정한 밴드내의 샘플을 설정합니다. |
void |
setSamples (int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
데이터 배열 요소 근처 1 개의 샘플을 저장하고 있는 int 배열로부터, 지정된 픽셀 구형의, 지정된 밴드에 샘플을 설정합니다. |
클래스 java.awt.image. ComponentSampleModel 에서 상속받은 메소드 |
equals , getBandOffsets , getBankIndices , getNumDataElements , getOffset , getOffset , getPixelStride , getSampleSize , getSampleSize , getScanlineStride |
클래스 java.awt.image. SampleModel 에서 상속받은 메소드 |
getDataElements , getDataType , getHeight , getNumBands , getPixel , getPixel , getPixels , getPixels , getSamples , getSamples , getTransferType , getWidth , setDataElements , setPixel , setPixel , setPixels , setPixels , setSamples , setSamples |
클래스 java.lang. Object 에서 상속받은 메소드 |
clone , finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
생성자의 상세 |
public BandedSampleModel(int dataType, int w, int h, int numBands)
dataType
- 샘플의 저장을 위한 데이터 타입w
- 기술되는 이미지 데이터의 area의 폭 (픽셀수)h
- 기술되는 이미지 데이터의 area의 높이 (픽셀수)numBands
- 이미지 데이터의 밴드수
IllegalArgumentException
- dataType
가 서포트되어 있지 않은 경우public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- 샘플의 저장을 위한 데이터 타입w
- 기술되는 이미지 데이터의 area의 폭 (픽셀수)h
- 기술되는 이미지 데이터의 area의 높이 (픽셀수)scanlineStride
- 이미지 데이터의 주사선 보폭bankIndices
- 각 밴드의 뱅크 인덱스bandOffsets
- 각 밴드의 밴드 오프셋(offset)
IllegalArgumentException
- dataType
가 서포트되어 있지 않은 경우메소드의 상세 |
public SampleModel createCompatibleSampleModel(int w, int h)
ComponentSampleModel
내의 createCompatibleSampleModel
w
- 결과적으로 돌려주어진 BandedSampleModel
의 폭h
- 결과적으로 돌려주어진 BandedSampleModel
의 높이
BandedSampleModel
IllegalArgumentException
- w
또는 h
가,Integer.MAX_VALUE
또는 Integer.MIN_VALUE
의 어느 쪽일까하고 같은 경우
IllegalArgumentException
- dataType
가 서포트되어 있지 않은 경우public SampleModel createSubsetSampleModel(int[] bands)
ComponentSampleModel
내의 createSubsetSampleModel
bands
- 이 ComponentSampleModel
의 밴드의 부분집합
ComponentSampleModel
의 밴드의 부분집합으로 작성된 ComponentSampleModel
RasterFormatException
- 밴드수가 이 샘플 모델내의 뱅크수보다 많은 경우
IllegalArgumentException
- dataType
가 서포트되어 있지 않은 경우public DataBuffer createDataBuffer()
ComponentSampleModel
내의 createDataBuffer
ComponentSampleModel
와 데이터형, 뱅크수, 및 사이즈가 같은 DataBuffer
IllegalArgumentException
- dataType
가 서포트되어 있지 않은 경우public Object getDataElements(int x, int y, Object obj, DataBuffer data)
다음의 코드는 BandedSampleModel bsm1
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db1
로부터, BandedSampleModel bsm2
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db2
에, 데이터를 전송 하는 예입니다. 통상, 이 전송 방법은 getPixel 와 setPixel 를 사용하는 것보다도 효율적입니다.
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModel 의 밴드수가 같아, 대응하는 밴드의 샘플 근처의 비트수가 같아, transferType 가 같은 경우, 2 개의 DataBuffer/SampleModel 의 페어의 사이에 전송 할 때는 getDataElements/setDataElements 를 사용하는 것이 적절합니다.
obj 가 null 가 아닌 경우는 transferType 형의 원시적 배열이 됩니다. 그렇지 않은 경우는 ClassCastException 가 슬로우 됩니다. 좌표가 경계내에 없는 경우, 또는 obj 가 null 가 아니고, 픽셀 데이터를 저장하기 위해서 충분한 사이즈가 아닌 경우는 ArrayIndexOutOfBoundsException 가 슬로우 되는 일도 있습니다.
ComponentSampleModel
내의 getDataElements
obj
- null 가 아닌 경우는 돌려주어진 픽셀 데이터가 들어가는 원시적 배열data
- 이미지 데이터가 저장되고 있는 DataBuffer
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 getPixel
iArray
- null 가 아닌 경우, 이 배열내의 샘플을 돌려주는data
- 이미지 데이터가 저장되고 있는 DataBuffer
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 getPixels
w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이iArray
- null 가 아닌 경우, 이 배열내의 샘플을 돌려주는data
- 이미지 데이터가 저장되고 있는 DataBuffer
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x, int y, int b, DataBuffer data)
ComponentSampleModel
내의 getSample
b
- 돌려주어지는 밴드data
- 이미지 데이터가 저장되고 있는 DataBuffer
setSample(int, int, int, int, DataBuffer)
public float getSampleFloat(int x, int y, int b, DataBuffer data)
ComponentSampleModel
내의 getSampleFloat
b
- 돌려주어지는 밴드data
- 이미지 데이터가 저장되고 있는 DataBuffer
public double getSampleDouble(int x, int y, int b, DataBuffer data)
ComponentSampleModel
내의 getSampleDouble
b
- 돌려주어지는 밴드data
- 이미지 데이터가 저장되고 있는 DataBuffer
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 getSamples
w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이b
- 돌려주어지는 밴드iArray
- null 가 아닌 경우, 이 배열내의 샘플을 돌려주는data
- 이미지 데이터가 저장되고 있는 DataBuffer
setSamples(int, int, int, int, int, int[], DataBuffer)
public void setDataElements(int x, int y, Object obj, DataBuffer data)
다음의 코드는 BandedSampleModel bsm1
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db1
로부터, BandedSampleModel bsm2
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db2
에, 데이터를 전송 하는 예입니다. 통상, 이 전송 방법은 getPixel 와 setPixel 를 사용하는 것보다도 효율적입니다.
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModel 의 밴드수가 같아, 대응하는 밴드의 샘플 근처의 비트수가 같아, transferType 가 같은 경우, 2 개의 DataBuffer/SampleModel 의 페어의 사이에 전송 할 때는 getDataElements/setDataElements 를 사용하는 것이 적절합니다.
obj 는 transferType 형의 원시적 배열이 아니면 안됩니다. 그렇지 않은 경우는 ClassCastException 가 슬로우 됩니다. 좌표가 경계내에 없는 경우, 또는 obj 가 픽셀 데이터를 저장하기 위해서 충분한 사이즈가 아닌 경우는 ArrayIndexOutOfBoundsException 가 슬로우 되는 일이 있습니다.
ComponentSampleModel
내의 setDataElements
obj
- null 가 아닌 경우는 이 오브젝트내의 원시적 배열을 돌려주는data
- 이미지 데이터가 저장되고 있는 DataBuffergetDataElements(int, int, Object, DataBuffer)
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 setPixel
iArray
- int 배열내의 입력 샘플data
- 이미지 데이터가 저장되고 있는 DataBuffergetPixel(int, int, int[], DataBuffer)
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 setPixels
w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이iArray
- int 배열내의 입력 샘플data
- 이미지 데이터가 저장되고 있는 DataBuffergetPixels(int, int, int, int, int[], DataBuffer)
public void setSample(int x, int y, int b, int s, DataBuffer data)
ComponentSampleModel
내의 setSample
b
- 설정되는 밴드s
- int 에서의 입력 샘플data
- 이미지 데이터가 저장되고 있는 DataBuffergetSample(int, int, int, DataBuffer)
public void setSample(int x, int y, int b, float s, DataBuffer data)
ComponentSampleModel
내의 setSample
b
- 설정되는 밴드s
- float 에서의 입력 샘플data
- 이미지 데이터가 저장되고 있는 DataBuffergetSample(int, int, int, DataBuffer)
public void setSample(int x, int y, int b, double s, DataBuffer data)
ComponentSampleModel
내의 setSample
b
- 설정되는 밴드s
- double 에서의 입력 샘플data
- 이미지 데이터가 저장되고 있는 DataBuffergetSample(int, int, int, DataBuffer)
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ComponentSampleModel
내의 setSamples
w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이b
- 설정되는 밴드iArray
- 입력 샘플 배열data
- 이미지 데이터가 저장되고 있는 DataBuffergetSamples(int, int, int, int, int, int[], DataBuffer)
public int hashCode()
Object
의 기술: java.util.Hashtable
에 의해 제공되는 것 같은 해시 테이블로 사용하기 위해서 준비되어 있습니다.
hashCode
메소드의 일반적인 규칙을 다음에 나타냅니다.
hashCode
메소드를 호출해도 결과는 같은 정수치가 되어야 하다
Object.equals(java.lang.Object)
메소드로 2 개의 오브젝트가 등가가 아니다고 여겨졌을 경우는 이러한 오브젝트에 대해서 hashCode 메소드를 호출했을 때에, 결과가 다른 정수치가 되지 않아도상관없다. 그러나, 동일하지 않은 오브젝트에 대해서는 다른 정수치가 생성되도록 하면, 해시 테이블의 퍼포먼스를 올릴 수가 있다
할 수 있는 한,Object 클래스에서 정의되는 hashCode 메소드는 다른 오브젝트에 대해서는 다른 정수치를 돌려줍니다. 통상, 이것은 오브젝트의 내부 주소를 정수치로 변환하는 형태로 구현됩니다만, 그러한 구현 테크닉은 JavaTM 프로그램 언어에서는 불필요합니다.
ComponentSampleModel
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.