ReplicateScaleFilter — 복제 스케일 필터 클래스
ReplicateScaleFilter — 복제 스케일 필터 클래스 (java.awt.image)
가장 단순한 알고리즘으로 이미지를 스케일링하는 ImageFilter 클래스예요.
본문
ReplicateScaleFilter는 기본 ImageFilter 클래스를 확장해 기존 이미지를 스케일링하고 리샘플링된 이미지를 담은 새 이미지의 소스를 제공해요. 소스 이미지의 픽셀을 샘플링해 지정된 크기의 이미지 픽셀을 생성하는데, 확대 시 픽셀 행·열을 복제하고 축소 시 픽셀 행·열을 생략하는 방식으로 동작해요.
FilteredImageSource 객체와 함께 사용해 기존 이미지의 스케일링 버전을 생성하도록 의도돼 있어요. 구현 의존성 때문에 다른 플랫폼에서 필터링된 이미지의 픽셀 값에 차이가 있을 수 있어요. 직접 하위 클래스는 AreaAveragingScaleFilter예요.
필드
| 필드 | 설명 |
|---|---|
srcWidth / srcHeight |
소스 이미지의 너비 / 높이 |
destWidth / destHeight |
이미지를 스케일링할 대상 너비 / 높이 |
srcrows |
픽셀 행에 대한 정보를 담은 int 배열 |
srccols |
픽셀 열에 대한 정보를 담은 int 배열 |
outpixbuf |
destWidth 크기로 초기화되고 ImageConsumer에 한 행의 픽셀 데이터를 전달하는 데 사용되는 배열 |
생성자
public ReplicateScaleFilter(int width, int height)
너비·높이 파라미터가 지정한 대로 소스 Image의 픽셀을 스케일링하는 ReplicateScaleFilter를 구성해요.
예외: IllegalArgumentException — width 또는 height가 0일 때
메서드
setProperties(Hashtable<?,?> props)— 적용된 스케일을 나타내는 속성을 추가한 후 소스 객체의 속성을 전달.super.setProperties를 호출해 추가 속성이 추가될 수 있어요. 주의: 필터링되는 Image의 ImageProducer가 호출하도록 의도됐어요. 직접 호출하면 필터링 연산을 방해할 수 있어요.setDimensions(int w, int h)— 소스 이미지의 차원을 재정의하고 새 스케일링 크기의 차원을 ColorModel에 전달. ImageProducer가 호출하도록 의도됨setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)— 전달된 byte 픽셀 중 대상 스케일링 이미지에 필요한 행·열을 선택하고 필요한 행·열만 복제하며 통과시킴setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)— int 픽셀에 대해 같은 동작 수행