SinglePixelPackedSampleModel — 단일 픽셀 패킹 샘플 모델 클래스

SinglePixelPackedSampleModel — 단일 픽셀 패킹 샘플 모델 클래스 (java.awt.image)

단일 픽셀을 구성하는 N개 샘플이 단일 데이터 배열 요소에 저장되고, 각 데이터 배열 요소가 한 픽셀의 샘플만 담는 픽셀 데이터를 나타내는 클래스예요.

출처: Java API Reference

본문

SinglePixelPackedSampleModelSampleModel을 확장해요. 이 클래스는 TYPE_BYTE, TYPE_USHORT, TYPE_INT 데이터 타입을 지원해요. 모든 데이터 배열 요소는 DataBuffer의 첫 번째 뱅크에 있어요. 스캔라인 스트라이드는 주어진 샘플과 다음 스캔라인의 같은 열에 있는 대응 샘플 사이의 데이터 배열 요소 수예요. 비트 마스크는 픽셀의 밴드를 나타내는 샘플을 추출하는 데 필요한 마스크이고, 비트 오프셋은 픽셀의 밴드를 나타내는 샘플의 데이터 배열 요소 안 비트 오프셋이에요.

생성자

public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)

bitMasks.length 만큼의 밴드를 가진 SinglePixelPackedSampleModel을 구성해요. 각 샘플은 대응하는 비트 마스크 위치의 데이터 배열 요소에 저장돼요. 각 비트 마스크는 연속해야 하고 마스크들이 겹치면 안 돼요. 데이터 타입 용량을 초과하는 비트 마스크는 잘라져요.

예외: IllegalArgumentExceptiondataTypeTYPE_BYTE·TYPE_USHORT·TYPE_INT가 아닐 때, w·h가 0보다 크지 않을 때, bitMask의 어떤 마스크가 연속하지 않을 때

메서드

  • getNumDataElements() — 픽셀 전송에 필요한 데이터 요소 수 반환. SinglePixelPackedSampleModel에선 1
  • createCompatibleSampleModel(int w, int h) — 같은 저장 데이터 타입·비트 마스크를 가진 새 모델 생성. 예외: IllegalArgumentException — w·h가 0 이하
  • createDataBuffer() — 이 모델에 대응하는 DataBuffer 생성 (단일 뱅크, 데이터 타입·크기 일치)
  • getSampleSize() / getSampleSize(int band) — 모든 밴드 / 지정된 밴드의 샘플당 비트 수 반환
  • getOffset(int x, int y) — 픽셀 (x,y)의 오프셋(데이터 배열 요소) 반환
  • getBitOffsets() / getBitMasks() — 모든 밴드의 비트 오프셋 / 비트 마스크 반환
  • getScanlineStride() — 스캔라인 스트라이드 반환
  • createSubsetSampleModel(int[] bands) — 밴드 부분집합을 가진 새 모델 생성. 예외: RasterFormatException — bands 길이가 샘플 모델 밴드 수보다 클 때
  • getDataElements(int x, int y, Object obj, DataBuffer data) — 단일 픽셀 데이터 반환. 하나의 요소 배열이고 타입은 저장 데이터 타입과 같음
  • getPixel(int x, int y, int[] iArray, DataBuffer data) — 지정된 픽셀의 모든 샘플을 int 배열로 반환
  • getPixels(...) — 픽셀 사각형의 모든 샘플 반환
  • getSample(int x, int y, int b, DataBuffer data) — (x,y) 픽셀의 지정된 밴드 샘플을 int로 반환
  • getSamples(...) — 사각형의 지정된 밴드 샘플 반환
  • setDataElements(...) — 단일 픽셀 데이터 설정 (첫 요소만 유효 데이터, 배열 타입은 저장 데이터 타입과 같아야 함)
  • setPixel(...) / setPixels(...) — int 배열로 픽셀 / 픽셀 사각형 설정
  • setSample(...) / setSamples(...) — 밴드 샘플 설정

예외 (데이터 접근): ArrayIndexOutOfBoundsException — 좌표 범위 밖, ClassCastException — obj가 TransferType 배열이 아닐 때

더 알아보기