ImageConsumer — 이미지 소비자 인터페이스
ImageConsumer — 이미지 소비자 인터페이스 (java.awt.image)
ImageProducer 인터페이스를 통해 이미지 데이터에 관심을 나타내는 객체를 위한 인터페이스예요. 소비자가 이미지 생산자에 추가되면, 생산자는 이 인터페이스에 정의된 메서드 호출을 사용해 이미지에 대한 모든 데이터를 전달해요.
본문
ImageConsumer를 구현하는 알려진 클래스로 AreaAveragingScaleFilter, BufferedImageFilter, CropImageFilter, GrayFilter, ImageFilter, PixelGrabber, ReplicateScaleFilter, RGBImageFilter가 있어요.
필드 요약
| 수식자·타입 | 필드 | 설명 |
|---|---|---|
COMPLETESCANLINES |
픽셀이 한 번에 (배수 단위의) 완전한 스캔라인으로 전달돼요. | |
IMAGEABORTED |
이미지 생성 과정이 의도적으로 중단됐어요. | |
IMAGEERROR |
이미지를 생성하는 동안 오류가 발생했어요. | |
RANDOMPIXELORDER |
픽셀이 임의 순서로 전달돼요. setHints 호출이 없을 때 기본 가정이에요. |
|
SINGLEFRAME |
이미지가 단일 정적 이미지를 포함해요. | |
SINGLEFRAMEDONE |
애니메이션의 한 프레임이 완료됐지만 더 전달할 프레임이 있어요. | |
SINGLEPASS |
픽셀이 단일 패스로 전달돼요. 각 픽셀은 한 번만 나타나요. (프로그레시브 JPEG는 해당하지 않음) | |
STATICIMAGEDONE |
이미지가 완료됐고 더 전달할 픽셀·프레임이 없어요. | |
TOPDOWNLEFTRIGHT |
픽셀이 top-down, left-to-right 순서로 전달돼요. |
메서드 상세
setDimensions(int width, int height)
void setDimensions(int width, int height)
소스 이미지의 크기를 보고해요.
파라미터: width — 소스 이미지 너비 / height — 소스 이미지 높이
setProperties(Hashtable<?,?> props)
void setProperties(Hashtable<?,?> props)
이 이미지와 연결된 확장 가능한 프로퍼티 목록을 설정해요.
setColorModel(ColorModel model)
void setColorModel(ColorModel model)
setPixels 호출로 보고되는 대부분의 픽셀에 사용되는 ColorModel 객체를 설정해요. 각 픽셀 집합은 자신의 ColorModel을 포함하므로 이 모델만 쓰인다고 가정하면 안 돼요. (예: 필터링된 이미지에서 필터는 원본 ColorModel로 그대로 보낼지, 필터링에 편리한 ColorModel로 바꿔 보낼지 결정해요.)
setHints(int hintflags)
void setHints(int hintflags)
ImageConsumer가 ImageProducer가 전달한 픽셀을 처리할 때 사용하는 힌트를 설정해요. ImageProducer는 어떤 순서로도 픽셀을 전달할 수 있지만, 소비자는 픽셀이 어떻게 전달될지 미리 알면 목적지 ColorModel로 더 효율적이거나 고품질로 스케일·변환할 수 있어요. setHints는 setPixels 호출 전에 호출해야 해요. 생산자가 표시된 힌트 지침을 따르지 않으면 결과는 정의되지 않아요.
setPixels(int x, int y, int w, int h, ColorModel model, byte[]/int[] pixels, int off, int scansize)
void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
한 번 이상의 호출로 이미지의 픽셀을 전달해요. 각 호출은 pixels 배열에 포함된 소스 픽셀 사각형의 위치와 크기를 지정해요. 픽셀 (m,n)은 pixels 배열의 인덱스 (n * scansize + m + off)에 저장돼요. byte 버전은 픽셀이 byte로, int 버전은 int로 저장돼요. 지정된 ColorModel을 사용해 픽셀을 해당 색·알파 컴포넌트로 변환해야 해요.
imageComplete(int status)
void imageComplete(int status)
ImageProducer가 소스 이미지가 포함한 모든 픽셀 전달을 마쳤거나, 다중 프레임 애니메이션의 단일 프레임이 완료됐거나, 이미지 로드·생성 중 오류가 발생했을 때 호출돼요. ImageConsumer는 연속 프레임에 관심이 없다면 이 시점에 ImageProducer에 등록된 소비자 목록에서 자신을 제거해야 해요.
파라미터: status — 이미지 로딩 상태