|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.awt.image.SampleModel
java.awt.image.MultiPixelPackedSampleModel
public class MultiPixelPackedSampleModel
MultiPixelPackedSampleModel
클래스는, 단일 밴드화 된 이미지를 표현해, 복수의 단일 샘플 픽셀을 1 개의 데이터 요소에 팩 할 수 있습니다. 픽셀은, 복수의 데이터 요소에 걸칠 수 없습니다. 데이터형은, DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, 또는 DataBuffer.TYPE_INT 입니다. 각 픽셀은 2 말하고 나무승의 비트수가 아니면 안되어, 2 말하고 나무승개의 픽셀이, 1 개의 데이터 요소에 딱 들어가지 않으면 안됩니다. 픽셀 비트 보폭은, 1 픽셀 근처의 비트수와 같습니다. 주사선 보폭은 데이터 요소내에 있어, 마지막 몇개의 데이터 요소가 미사용의 픽셀로 패딩 됩니다. 데이터 비트 오프셋(offset)는,DataBuffer
의 선두로부터 최초의 픽셀까지의 비트 단위의 오프셋(offset)이며, 픽셀 비트 보폭의 배수입니다.
다음의 코드예는,DataBuffer
의 data
로부터 픽셀 x, y
의 비트를 추출해,dataType
형의 데이터 요소에 픽셀 데이터를 포함합니다.
int dataElementSize = DataBuffer.getDataTypeSize(dataType); int bitnum = dataBitOffset + x*pixelBitStride; int element = data.getElem(y*scanlineStride + bitnum/dataElementSize); int shift = dataElementSize - (bitnum & (dataElementSize-1)) - pixelBitStride; int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);
필드의 개요 |
---|
클래스 java.awt.image. SampleModel 로부터 상속된 필드 |
---|
dataType , height , numBands , width |
생성자 의 개요 | |
---|---|
MultiPixelPackedSampleModel (int dataType,
int w,
int h,
int numberOfBits)
지정된 데이터형, 폭, 높이, 및 1 픽셀 근처의 비트수를 가지는 MultiPixelPackedSampleModel 를 구축합니다. |
|
MultiPixelPackedSampleModel (int dataType,
int w,
int h,
int numberOfBits,
int scanlineStride,
int dataBitOffset)
지정된 데이터형, 폭, 높이, 1 픽셀 근처의 비트수, 주사선 보폭, 및 데이터 비트 오프셋(offset)을 가지는 MultiPixelPackedSampleModel 를 구축합니다. |
메소드의 개요 | |
---|---|
SampleModel |
createCompatibleSampleModel (int w,
int h)
지정된 폭과 높이를 가지는 새로운 MultiPixelPackedSampleModel 를 구축합니다. |
DataBuffer |
createDataBuffer ()
이 MultiPixelPackedSampleModel 에 대응하는 DataBuffer 를 구축합니다. |
SampleModel |
createSubsetSampleModel (int[] bands)
이 MultiPixelPackedSampleModel 의 밴드의 부분집합을 가지는 새로운 MultiPixelPackedSampleModel 를 작성합니다. |
boolean |
equals (Object o)
이 객체와 「등가」가 되는 객체가 있을지 어떨지를 나타냅니다. |
int |
getBitOffset (int x)
주사선의 x 번째의 픽셀로서 포함되고 있는 데이터 요소의 오프셋(offset)를 비트수로 돌려줍니다. |
int |
getDataBitOffset ()
데이터 비트 오프셋(offset)를 비트수로 돌려줍니다. |
Object |
getDataElements (int x,
int y,
Object obj,
DataBuffer data)
transferType 형의 프리미티브(primitive) 배열내의 1 개의 픽셀의 데이터를 돌려줍니다. |
int |
getNumDataElements ()
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) 메소드 및 setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) 메소드를 사용해 1 픽셀 전송 하는데 필요한 데이터 요소의 수를 돌려줍니다. |
int |
getOffset (int x,
int y)
픽셀 (x, y)의 데이터 배열 요소에서의 오프셋(offset)를 돌려줍니다. |
int[] |
getPixel (int x,
int y,
int[] iArray,
DataBuffer data)
int 배열의 선두 요소의, 지정된 1 개의 밴드의 픽셀을 돌려줍니다. |
int |
getPixelBitStride ()
픽셀 비트 보폭을 비트수로 돌려줍니다. |
int |
getSample (int x,
int y,
int b,
DataBuffer data)
(x, y)에 위치하는 픽셀의 지정된 밴드의 샘플을 int 로서 돌려줍니다. |
int[] |
getSampleSize ()
모든 밴드의 샘플 근처의 비트수를 돌려줍니다. |
int |
getSampleSize (int band)
지정된 밴드의 샘플 근처의 비트수를 돌려줍니다. |
int |
getScanlineStride ()
주사선 보폭을 돌려줍니다. |
int |
getTransferType ()
getDataElements 메소드와 setDataElements 메소드에 의해 픽셀을 전송 하기 위해서 사용하는 TransferType 를 돌려줍니다. |
int |
hashCode ()
객체의 해시 코드값를 돌려줍니다. |
void |
setDataElements (int x,
int y,
Object obj,
DataBuffer data)
지정된 DataBuffer 의 1 개의 픽셀의 데이터를, TransferType 형의 프리미티브(primitive) 배열로부터 설정합니다. |
void |
setPixel (int x,
int y,
int[] iArray,
DataBuffer data)
int 배열을 입력으로 해,DataBuffer 의 픽셀을 설정합니다. |
void |
setSample (int x,
int y,
int b,
int s,
DataBuffer data)
int 를 입력으로 해,DataBuffer 의 것 (x, y)에 위치하는 픽셀의, 지정된 밴드의 샘플을 설정합니다. |
클래스 java.awt.image. SampleModel 로부터 상속된 메소드 |
---|
getDataElements , getDataType , getHeight , getNumBands , getPixel , getPixel , getPixels , getPixels , getPixels , getSampleDouble , getSampleFloat , getSamples , getSamples , getSamples , getWidth , setDataElements , setPixel , setPixel , setPixels , setPixels , setPixels , setSample , setSample , setSamples , setSamples , setSamples |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits)
MultiPixelPackedSampleModel
를 구축합니다.
dataType
- 샘플 포함용의 데이터 형식w
- 기술되는 이미지 데이터의 영역의 폭
(픽셀 단위)h
- 기술되는 이미지 데이터의 영역의 높이
(픽셀 단위)numberOfBits
- 픽셀마다의 비트수
IllegalArgumentException
- dataType
가
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
,
DataBuffer.TYPE_INT
의 머지않아도 아닌 경우public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset)
MultiPixelPackedSampleModel
를 구축합니다.
dataType
- 샘플 포함용의 데이터 형식w
- 기술되는 이미지 데이터의 영역의 폭
(픽셀 단위)h
- 기술되는 이미지 데이터의 영역의 높이
(픽셀 단위)numberOfBits
- 픽셀마다의 비트수scanlineStride
- 이미지 데이터의 주사선 보폭dataBitOffset
- 기술되고 있는 이미지 데이터 영역의
데이터 비트 오프셋(offset)
RasterFormatException
- 1 픽셀 근처의 비트수가 2 말하고 나무승이 아닌 경우,
혹은 2 말하고 나무승개의 픽셀이
1 데이터 요소에 들어가지 않는 경우
IllegalArgumentException
- w
또는
h
가 0 이하인 경우
IllegalArgumentException
- dataType
가
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
,
DataBuffer.TYPE_INT
의 머지않아도 아닌 경우메소드의 상세 |
---|
public SampleModel createCompatibleSampleModel(int w, int h)
MultiPixelPackedSampleModel
를 구축합니다. 새로운 MultiPixelPackedSampleModel
의 스토리지 데이터형과 1 픽셀 근처의 비트수는, 이 MultiPixelPackedSampleModel
와 같습니다.
SampleModel
내의 createCompatibleSampleModel
w
- 지정된 폭h
- 지정된 높이
MultiPixelPackedSampleModel
와 스토리지 데이터형 및
1 픽셀 근처의 비트수가 같은 SampleModel
IllegalArgumentException
- w
또는
h
가 0 이하인 경우public DataBuffer createDataBuffer()
MultiPixelPackedSampleModel
에 대응하는 DataBuffer
를 구축합니다. DataBuffer
객체의 데이터형과 사이즈는, 이 MultiPixelPackedSampleModel
와 같습니다. DataBuffer
는 1 개의 뱅크를 가집니다.
SampleModel
내의 createDataBuffer
MultiPixelPackedSampleModel
와 데이터형 및
사이즈가 같은 DataBuffer
public int getNumDataElements()
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
메소드 및 setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
메소드를 사용해 1 픽셀 전송 하는데 필요한 데이터 요소의 수를 돌려줍니다. MultiPixelPackedSampleModel
의 경우는 1 이 됩니다.
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 int[] getSampleSize()
SampleModel
내의 getSampleSize
public int getSampleSize(int band)
SampleModel
내의 getSampleSize
band
- 지정된 밴드
public int getOffset(int x, int y)
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표
public int getBitOffset(int x)
x
번째의 픽셀로서 포함되고 있는 데이터 요소의 오프셋(offset)를 비트수로 돌려줍니다. 이 오프셋(offset)는, 모든 주사선으로 같습니다.
x
- 지정된 픽셀
public int getScanlineStride()
MultiPixelPackedSampleModel
의
주사선 보폭public int getPixelBitStride()
MultiPixelPackedSampleModel
의
pixelBitStride
public int getDataBitOffset()
MultiPixelPackedSampleModel
의
dataBitOffset
public int getTransferType()
getDataElements
메소드와 setDataElements
메소드에 의해 픽셀을 전송 하기 위해서 사용하는 TransferType 를 돌려줍니다. TransferType 는, 스토리지 데이터형과 같아도, 차이가 나도 괜찮습니다. TransferType 는, DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, 또는 DataBuffer.TYPE_INT 의 어느 쪽인가에 됩니다.
SampleModel
내의 getTransferType
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.getNumDataElements()
,
DataBuffer
public SampleModel createSubsetSampleModel(int[] bands)
MultiPixelPackedSampleModel
의 밴드의 부분집합을 가지는 새로운 MultiPixelPackedSampleModel
를 작성합니다. MultiPixelPackedSampleModel
는 밴드를 1 개 밖에 가지지 않기 때문에, bands 인수는 길이 1 으로 제로 번째의 밴드를 나타낼 필요가 있습니다.
SampleModel
내의 createSubsetSampleModel
bands
- 지정된 밴드
MultiPixelPackedSampleModel
의 밴드의 부분집합을 가진다
새로운 SampleModel
RasterFormatException
- 요구된 밴드수가
1 이 아닌 경우
IllegalArgumentException
- w
또는
h
가 0 이하인 경우public int getSample(int x, int y, int b, DataBuffer data)
int
로서 돌려줍니다. 좌표가 경계내에 없는 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 getSample
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표b
- 반환되는 밴드 (0 으로 보여진다)data
- 이미지 데이터를 포함한다
DataBuffer
ArrayIndexOutOfBoundException
- 지정했다
좌표가 범위외에 있는 경우setSample(int, int, int, int, DataBuffer)
public void setSample(int x, int y, int b, int s, DataBuffer data)
int
를 입력으로 해,DataBuffer
의 것 (x, y)에 위치하는 픽셀의, 지정된 밴드의 샘플을 설정합니다. 좌표가 경계내에 없는 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 setSample
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표b
- 반환되는 밴드 (0 으로 보여진다)s
- int
의 입력 샘플data
- 이미지 데이터의 포함처의 DataBuffer
ArrayIndexOutOfBoundsException
- 좌표가 경계내에
없는 경우getSample(int, int, int, DataBuffer)
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
MultiPixelPackedSampleModel
의 경우, 배열은 1 개의 요소를 가져, 형태는 1 개의 픽셀을 포함할 수 있는 DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, 또는 DataBuffer.TYPE_INT 가운데 최소의 것이 됩니다. 일반적으로,obj
는 null
로 건네받으므로,Object
는 자동적으로 작성되어 올바른 기본 데이터형이 됩니다.
다음의 코드는, 스토리지 레이아웃이 MultiPixelPackedSampleModel
mppsm1
에 의해 기술되고 있는 DataBuffer
db1
로부터, 스토리지 레이아웃이 MultiPixelPackedSampleModel
mppsm2
에 의해 기술되고 있는 DataBuffer
db2
에, 1 픽셀의 데이터를 전송 하는 예를 나타냅니다. 이 전송 방법은,getPixel
또는 setPixel
를 사용하는 방법보다 일반적으로 효율적입니다.
MultiPixelPackedSampleModel mppsm1, mppsm2; DataBufferInt db1, db2; mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null, db1), db2);2 개의
SampleModel
의 밴드수가 같아, 대응하는 밴드의 1 샘플 근처의 비트수가 같아, transferType 도 같은 경우는, 2 조의 DataBuffer
과 SampleModel
페어간의 전송을 실시하려면 ,getDataElements
또는 setDataElements
를 사용하는 것이 적절합니다.
obj
가 null
가 아닌 경우는, transferType 형의 프리미티브(primitive) 배열이 됩니다. 그렇지 않은 경우는,ClassCastException
가 throw 됩니다. 좌표가 경계내에 없는 경우나,obj
가 null
가 아니고, 픽셀 데이터를 포함하기 위해서 충분한 크기가 아닌 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 getDataElements
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표obj
- 픽셀 데이터를 돌려주는 프리미티브(primitive) 배열,
또는 null
data
- 이미지 데이터를 포함하는 DataBuffer
Object
ClassCastException
- obj
가
TransferType 형의 프리미티브(primitive) 배열이 아니고,null
도 아닌 경우
ArrayIndexOutOfBoundsException
- 좌표가 경계내에
없는 경우. 또는 obj
가 null
가 아닌가
픽셀 데이터를 보관 유지하는데 충분한 크기가 아닌 경우setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
int
배열의 선두 요소의, 지정된 1 개의 밴드의 픽셀을 돌려줍니다. 좌표가 경계내에 없는 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 getPixel
x
- 지정된 픽셀의 X 좌표y
- 지정된 픽셀의 Y 좌표iArray
- 반환되는 픽셀이 포함되는 배열,
또는 null
data
- 이미지 데이터의 포함처의 DataBuffer
ArrayIndexOutOfBoundsException
- 좌표가
경계내에 없는 경우setPixel(int, int, int[], DataBuffer)
public void setDataElements(int x, int y, Object obj, DataBuffer data)
DataBuffer
의 1 개의 픽셀의 데이터를, TransferType 형의 프리미티브(primitive) 배열로부터 설정합니다. MultiPixelPackedSampleModel
의 경우는, 배열의 선두 요소만이 유효한 데이터를 보관 유지해, 형태는 1 개의 픽셀을 보관 유지할 수 있는 DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, 또는 DataBuffer.TYPE_INT 가운데 최소의 것이 됩니다.
다음의 코드는, 스토리지 레이아웃이 MultiPixelPackedSampleModel
mppsm1
에 의해 기술되고 있는 DataBuffer
db1
로부터, 스토리지 레이아웃이 MultiPixelPackedSampleModel
mppsm2
에 의해 기술되고 있는 DataBuffer
db2
에, 1 픽셀의 데이터를 전송 하는 예를 나타냅니다. 이 전송 방법은,getPixel
또는 setPixel
를 사용하는 방법보다 일반적으로 효율적입니다.
MultiPixelPackedSampleModel mppsm1, mppsm2; DataBufferInt db1, db2; mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null, db1), db2);2 개의
SampleModel
객체의 밴드수가 같아, 대응하는 밴드의 1 샘플 근처의 비트수가 같아, TransferType 도 같은 경우는, 2 조의 DataBuffer
과 SampleModel
페어간에 전송을 실시하려면 ,getDataElements
또는 setDataElements
를 사용하는 것이 적절합니다.
obj
는, TransferType 형의 프리미티브(primitive) 배열이 됩니다. 그렇지 않은 경우는,ClassCastException
가 throw 됩니다. 좌표가 경계내에 없는 경우나,obj
가 픽셀 데이터를 포함하기 위해서 충분한 크기가 아닌 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 setDataElements
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표obj
- 픽셀 데이터를 포함하는 프리미티브(primitive) 배열data
- 이미지 데이터를 포함하는 DataBuffer
getDataElements(int, int, Object, DataBuffer)
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
int
배열을 입력으로 해,DataBuffer
의 픽셀을 설정합니다. 좌표가 경계내에 없는 경우는,ArrayIndexOutOfBoundsException
가 throw 됩니다.
SampleModel
내의 setPixel
x
- 픽셀 위치의 X 좌표y
- 픽셀 위치의 Y 좌표iArray
- int
배열의 입력 픽셀data
- 이미지 데이터를 포함하는 DataBuffer
getPixel(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 도 참조해 주세요.