|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.awt.image.SampleModel
java.awt.image.SinglePixelPackedSampleModel
public class SinglePixelPackedSampleModel
이 클래스는, 1 개의 픽셀을 구성하는 N 개의 샘플이 1 개의 데이터 배열 요소에 포함되도록(듯이) 팩 된 픽셀 데이터를 나타냅니다. 데이터 배열 요소의 각 데이터는 1 개의 픽셀만의 샘플을 보관 유지합니다. 이 클래스는,TYPE_BYTE
,TYPE_USHORT
,TYPE_INT
의 각 데이터형을 지원합니다. 모든 데이터 배열 요소는, DataBuffer 의 최초의 뱅크에 상주합니다. 이미지 데이터를 직접 조작할 수 있도록(듯이), 액세스용 메소드가 제공되고 있습니다. 주사선 보폭은, 지정된 샘플과 다음의 주사선의 같은 열의 대응하는 샘플과의 사이의 데이터 배열 요소의 수입니다. 비트 마스크는, 픽셀의 밴드를 나타내는 샘플을 추출하는데 필요한 마스크입니다. 비트 오프셋(offset)는, 픽셀의 밴드를 나타내는 샘플의 데이터 배열 요소에의 비트 단위의 오프셋(offset)입니다.
다음의 코드는, DataBuffer data
로부터, 픽셀 x, y
의 밴드 b
를 나타내는 샘플의 비트를 추출하는 예입니다.
int sample = data.getElem(y * scanlineStride + x); sample = (sample & bitMasks[b]) >>> bitOffsets[b];
필드의 개요 |
---|
클래스 java.awt.image. SampleModel 로부터 상속된 필드 |
---|
dataType , height , numBands , width |
생성자 의 개요 | |
---|---|
SinglePixelPackedSampleModel (int dataType,
int w,
int h,
int[] bitMasks)
bitMasks.length 의 밴드를 사용해 SinglePixelPackedSampleModel 를 구축합니다. |
|
SinglePixelPackedSampleModel (int dataType,
int w,
int h,
int scanlineStride,
int[] bitMasks)
bitMasks.length 의 밴드, 그리고 scanlineStride 데이터 배열 요소와 일치하는 주사선 보폭을 사용해 SinglePixelPackedSampleModel 를 구축합니다. |
메소드의 개요 | |
---|---|
SampleModel |
createCompatibleSampleModel (int w,
int h)
지정된 폭과 높이를 사용해 새로운 SinglePixelPackedSampleModel 를 작성합니다. |
DataBuffer |
createDataBuffer ()
이 SinglePixelPackedSampleModel 에 대응하는 DataBuffer 를 생성합니다. |
SampleModel |
createSubsetSampleModel (int[] bands)
이 SinglePixelPackedSampleModel 의 밴드의 부분집합을 사용해 새로운 SinglePixelPackedSampleModel 를 작성합니다. |
boolean |
equals (Object o)
이 객체와 「등가」가 되는 객체가 있을지 어떨지를 나타냅니다. |
int[] |
getBitMasks ()
모든 밴드의 비트 마스크를 돌려줍니다. |
int[] |
getBitOffsets ()
모든 밴드의 픽셀을 나타내는 데이터 배열 요소에 비트 오프셋(offset)를 돌려줍니다. |
Object |
getDataElements (int x,
int y,
Object obj,
DataBuffer data)
transferType 형의 프리미티브(primitive) 배열내의 1 개의 픽셀의 데이터를 돌려줍니다. |
int |
getNumDataElements ()
getDataElements 메소드 및 setDataElements 메소드를 사용해 1 픽셀 전송 하는데 필요한 데이터 요소의 수를 돌려줍니다. |
int |
getOffset (int x,
int y)
픽셀 (x, y)의 데이터 배열 요소내의 오프셋(offset)를 돌려줍니다. |
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 로서 돌려줍니다. |
int[] |
getSamples (int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
int 배열의 지정된 픽셀의 구형의, 지정된 밴드의 샘플을 돌려줍니다. |
int[] |
getSampleSize ()
모든 밴드의 샘플 근처의 비트수를 돌려줍니다. |
int |
getSampleSize (int band)
지정된 밴드의 샘플 근처의 비트수를 돌려줍니다. |
int |
getScanlineStride ()
이 SinglePixelPackedSampleModel 의 주사선 보폭을 돌려줍니다. |
int |
hashCode ()
객체의 해시 코드값를 돌려줍니다. |
void |
setDataElements (int x,
int y,
Object obj,
DataBuffer data)
TransferType 형의 프리미티브(primitive) 배열로부터의, 지정한 DataBuffer 내의 1 개의 픽셀의 데이터를 설정합니다. |
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,
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. SampleModel 로부터 상속된 메소드 |
---|
getDataElements , getDataType , getHeight , getNumBands , getPixel , getPixel , getPixels , getPixels , getSampleDouble , getSampleFloat , getSamples , getSamples , getTransferType , getWidth , setDataElements , setPixel , setPixel , setPixels , setPixels , setSample , setSample , setSamples , setSamples |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
dataType
- 샘플의 포함을 위한 데이터형w
- 기술되는 이미지 데이터의 영역의 폭
(픽셀 단위)h
- 기술되는 이미지 데이터의 영역의 높이
(픽셀 단위)bitMasks
- 모든 밴드의 비트 마스크
IllegalArgumentException
- dataType
가
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
, 또는
DataBuffer.TYPE_INT
의 머지않아도 아닌 경우public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
dataType
- 샘플의 포함을 위한 데이터형w
- 기술되는 이미지 데이터의 영역의 폭
(픽셀 단위)h
- 기술되는 이미지 데이터의 영역의 높이
(픽셀 단위)scanlineStride
- 이미지 데이터의 주사선 보폭bitMasks
- 모든 밴드의 비트 마스크
IllegalArgumentException
- w
또는
h
가 0 이하인 경우
IllegalArgumentException
- bitMask
의
마스크가 연속하지 않은 경우
IllegalArgumentException
- dataType
가
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
, 또는
DataBuffer.TYPE_INT
의 머지않아도 아닌 경우메소드의 상세 |
---|
public int getNumDataElements()
SampleModel
내의 getNumDataElements
SampleModel.getDataElements(int, int, Object, DataBuffer)
,
SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)
,
SampleModel.setDataElements(int, int, Object, DataBuffer)
,
SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)
,
SampleModel.getTransferType()
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
내의 createCompatibleSampleModel
w
- 결과적으로 반환된 SampleModel
의 폭h
- 결과적으로 반환된 SampleModel
의 높이
SinglePixelPackedSampleModel
IllegalArgumentException
- w
또는
h
가 0 이하인 경우public DataBuffer createDataBuffer()
SampleModel
내의 createDataBuffer
SampleModel
에 대응한다
DataBuffer
public int[] getSampleSize()
SampleModel
내의 getSampleSize
public int getSampleSize(int band)
SampleModel
내의 getSampleSize
band
- 지정된 밴드
public int getOffset(int x, int y)
x, y
가 포함되고 있는 데이터 요소는, 다음과 같이 SinglePixelPackedSampleModel sppsm
를 사용해 DataBuffer data
로부터 꺼낼 수가 있습니다.
data.getElem(sppsm.getOffset(x, y));
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표
public int[] getBitOffsets()
public int[] getBitMasks()
public int getScanlineStride()
SinglePixelPackedSampleModel
의
주사선 보폭public SampleModel createSubsetSampleModel(int[] bands)
SampleModel
내의 createSubsetSampleModel
bands
- 이 SampleModel
의 밴드의 부분집합
SampleModel
의 밴드의 부분집합을 가진다
SampleModel
RasterFormatException
- bands 인수의 길이가
샘플 모델의 밴드수부터
큰 경우public Object getDataElements(int x, int y, Object obj, DataBuffer data)
다음의 코드는, SinglePixelPackedSampleModel sppsm1
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db1
로부터, SinglePixelPackedSampleModel sppsm2
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db2
에, 1 픽셀의 데이터를 전송 하는 예입니다. 일반적으로, 이 전송은 getPixel 와 setPixel 를 사용하는 것보다도 효율적입니다.
SinglePixelPackedSampleModel sppsm1, sppsm2; DataBufferInt db1, db2; sppsm2.setDataElements(x, y, sppsm1.getDataElements(x, y, null, db1), db2);SampleModel 의 밴드수가 같아, 대응하는 밴드의 샘플 근처의 비트수가 같아, TransferType 가 같은 경우, 2 개의 DataBuffer/SampleModel 간의 전송에는, getDataElements/setDataElements 를 사용하는 것이 적절합니다.
obj 가 null 가 아닌 경우는, TransferType 형의 프리미티브(primitive) 배열이 됩니다. 그렇지 않은 경우는, ClassCastException 가 throw 됩니다. 좌표가 경계내에 없는 경우, 또는 obj 가 null 가 아니고, 픽셀 데이터를 포함하기 위해서 충분한 사이즈가 아닌 경우는, ArrayIndexOutOfBoundsException 가 throw 됩니다.
SampleModel
내의 getDataElements
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표obj
- null 가 아닌 경우는, 픽셀 데이터가 반환된다
프리미티브(primitive) 배열data
- 이미지 데이터를 포함하는 DataBuffer
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
SampleModel
내의 getPixel
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표iArray
- null 가 아닌 경우, 이 배열내의 샘플을 돌려주는data
- 이미지 데이터를 포함하는 DataBuffer
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
SampleModel
내의 getPixels
x
- 좌상의 픽셀 위치의 X 좌표y
- 좌상의 픽셀 위치의 Y 좌표w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이iArray
- null 가 아닌 경우, 이 배열내의 샘플을 돌려주는data
- 이미지 데이터를 포함하는 DataBuffer
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x, int y, int b, DataBuffer data)
SampleModel
내의 getSample
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표b
- 반환되는 밴드data
- 이미지 데이터를 포함하는 DataBuffer
setSample(int, int, int, int, DataBuffer)
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
SampleModel
내의 getSamples
x
- 좌상의 픽셀 위치의 X 좌표y
- 좌상의 픽셀 위치의 Y 좌표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)
다음의 코드는, SinglePixelPackedSampleModel sppsm1
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db1
로부터, SinglePixelPackedSampleModel sppsm2
에 의해 스토리지 레이아웃이 기술되고 있는 DataBuffer db2
에, 1 픽셀의 데이터를 전송 하는 예입니다. 일반적으로, 이 전송은 getPixel 와 setPixel 를 사용하는 것보다도 효율적입니다.
SinglePixelPackedSampleModel sppsm1, sppsm2; DataBufferInt db1, db2; sppsm2.setDataElements(x, y, sppsm1.getDataElements(x, y, null, db1), db2);SampleModel 의 밴드수가 같아, 대응하는 밴드의 샘플 근처의 비트수가 같아, TransferType 가 같은 경우, 2 개의 DataBuffer/SampleModel 간의 전송에는, getDataElements/setDataElements 를 사용하는 것이 적절합니다.
obj 는 TransferType 형의 프리미티브(primitive) 배열이 아니면 안됩니다. 그렇지 않은 경우는, ClassCastException 가 throw 됩니다. 좌표가 경계내에 없는 경우, 또는 obj 가 픽셀 데이터를 포함하기 위해서 충분한 사이즈가 아닌 경우는, ArrayIndexOutOfBoundsException 가 throw 됩니다.
SampleModel
내의 setDataElements
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표obj
- 픽셀 데이터를 포함하는 프리미티브(primitive) 배열data
- 이미지 데이터를 포함하는 DataBuffergetDataElements(int, int, Object, DataBuffer)
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
SampleModel
내의 setPixel
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표iArray
- int 배열 형식의 입력 샘플data
- 이미지 데이터를 포함하는 DataBuffergetPixel(int, int, int[], DataBuffer)
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
SampleModel
내의 setPixels
x
- 좌상의 픽셀 위치의 X 좌표y
- 좌상의 픽셀 위치의 Y 좌표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)
SampleModel
내의 setSample
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표b
- 설정되는 밴드s
- int 의 입력 샘플data
- 이미지 데이터를 포함하는 DataBuffergetSample(int, int, int, DataBuffer)
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
SampleModel
내의 setSamples
x
- 좌상의 픽셀 위치의 X 좌표y
- 좌상의 픽셀 위치의 Y 좌표w
- 픽셀 구형의 폭h
- 픽셀 구형의 높이b
- 설정되는 밴드iArray
- int 배열 형식의 입력 샘플data
- 이미지 데이터를 포함하는 DataBuffergetSamples(int, int, int, int, int, int[], DataBuffer)
public boolean equals(Object o)
Object
의 기술:
equals
메소드는, null 이외의 객체 참조에서의 동치 관계를 구현합니다.
x
에 대해,x.equals(x)
는 true
를 돌려준다
x
와 y
에 대해,x.equals(y)
는,y.equals(x)
가 true
를 돌려주는 경우만 true
를 돌려준다
x
,y
,z
에 대해,x.equals(y)
가 true
를 돌려주어, 한편 y.equals(z)
가 true
를 돌려주는 경우에,x.equals(z)
는 true
를 돌려준다
x
및 y
에 대해,x.equals(y) 를 복수 호출하면(자) 항상 true
를 돌려주는지, 항상 false
를 돌려준다. 이것은, 객체에 대한 equals
에 의한 비교로 사용된 정보가 변경되어 있지 않은 것이 조건이다
x
에 대해,x.equals(null)
는 false
를 돌려준다
Object
클래스의 equals 메소드는, 가장 비교하기 쉬운 객체의 동치 관계를 구현합니다. 즉, null 이외의 참조치 x
와 y
에 대해, 이 메소드는 x
와 y
가 같은 객체를 참조하는 (x == y
가 true
) 경우에만 true
를 돌려줍니다.
일반적으로, 이 메소드를 오버라이드(override) 하는 경우는,hashCode 메소드를 항상 오버라이드(override) 해, 「등가인 객체는 등가인 해시 코드를 보관 유지할 필요가 있다」라고 하는 hashCode 메소드의 범용 규약에 따를 필요가 있는 것에 유의해 주세요.
Object
내의 equals
o
- 비교 대상의 참조 객체
true
, 그렇지 않은 경우는 false
Object.hashCode()
,
Hashtable
public int hashCode()
Object
의 기술:java.util.Hashtable
에 의해 제공되는 것 같은 해시 테이블로 사용하기 위해서 준비되어 있습니다.
hashCode
메소드의 일반적인 규칙을 다음에 나타냅니다.
hashCode
메소드를 호출해도 결과는 같은 정수치가 되어야 하다
Object.equals(java.lang.Object)
메소드로 2 개의 객체가 등가가 아니다고 여겨졌을 경우는, 이러한 객체에 대해서 hashCode 메소드를 호출했을 때에, 결과가 다른 정수치가 되지 않아도 상관없다. 그러나, 동일하지 않은 객체에 대해서는 다른 정수치가 생성되도록 하면, 해시 테이블의 퍼포먼스를 올릴 수가 있다
할 수 있는 한,Object 클래스에서 정의되는 hashCode 메소드는, 다른 객체에 대해서는 다른 정수치를 돌려줍니다. 일반적으로, 이것은 객체의 내부 주소를 정수치로 변환하는 형태로 구현됩니다만, 그러한 구현 테크닉은 JavaTM 프로그램 언어에서는 불필요합니다.
Object
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.