RGBImageFilter — RGB 이미지 필터 클래스

RGBImageFilter — RGB 이미지 필터 클래스 (java.awt.image)

기본 RGB ColorModel에서 이미지의 픽셀을 수정하는 ImageFilter를 쉽게 만드는 추상 클래스예요.

출처: Java API Reference

본문

RGBImageFilterImageFilter를 확장하는 추상 클래스예요. FilteredImageSource 객체와 함께 사용해 기존 이미지의 필터링 버전을 생성하도록 의도됐어요. ImageProducer가 사용하는 ColorModel과 무관하게 모든 픽셀 데이터를 기본 RGB ColorModel에서 픽셀을 한 번에 하나씩 변환하는 단일 메서드로 모으는 데 필요한 호출을 제공해요.

사용할 수 있는 이미지 필터를 만들기 위해 정의해야 하는 유일한 메서드는 filterRGB예요. 예를 들어 이미지의 빨강·파랑 성분을 바꾸는 필터 정의를 제공해요. 직접 하위 클래스는 GrayFilter예요.

필드

필드 설명
origmodel 사용자가 substituteColorModel을 호출할 때 newmodel로 교체될 ColorModel
newmodel 사용자가 substituteColorModel을 호출할 때 origmodel을 교체하는 ColorModel
canFilterIndexColorModel filterRGB 메서드의 색 필터링을 픽셀 단위 필터링 대신 IndexColorModel 객체의 색상표 항목에 적용하는 것이 허용되는지 나타내는 boolean. 하위 클래스는 filterRGB 메서드가 필터링되는 픽셀의 좌표에 의존하지 않으면 생성자에서 true로 설정해야 해요

생성자

protected RGBImageFilter()

하위 클래스가 호출하는 생성자.

메서드

  • setColorModel(ColorModel model) — ColorModel이 IndexColorModel이고 canFilterIndexColorModel 플래그가 true이면 filterRGB 함수로 계산된 필터링 버전으로 교체. IndexColorModel이 아니거나 null이면 기본 RGB ColorModel을 지정
  • substituteColorModel(ColorModel oldcm, ColorModel newcm) — 교체용 두 ColorModel 객체 등록. setPixels 메서드에서 oldcm을 만나면 newcm으로 교체하고 픽셀은 그대로 통과
  • filterIndexColorModel(IndexColorModel icm) — IndexColorModel의 각 색상표 항목을 filterRGB 함수로 필터링. 좌표 -1을 사용해 실제 픽셀 값이 아닌 색상표 항목이 필터링됨을 표시. 예외: NullPointerException — icm이 null일 때
  • filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) — 기본 RGB ColorModel의 픽셀 버퍼를 filterRGB 메서드로 하나씩 통과시켜 필터링
  • setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) — ColorModel이 이미 변환된 것과 같으면 변환된 ColorModel로 통과, 아니면 byte 픽셀 버퍼를 기본 RGB ColorModel로 변환 후 filterRGBPixels로 전달
  • setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) — int 픽셀에 대해 같은 동작 수행
  • filterRGB(int x, int y, int rgb)abstract. 하위 클래스는 기본 RGB ColorModel의 단일 입력 픽셀을 단일 출력 픽셀로 변환하는 메서드를 지정해야 해요

더 알아보기