ConvolveOp — 컨볼루션 연산
ConvolveOp — 컨볼루션 연산 (java.awt.image)
소스 이미지의 각 픽셀에서 커널과의 컨볼루션(convolution)을 수행하는 클래스예요.
본문
ConvolveOp는 java.lang.Object를 확장하고 BufferedImageOp, RasterOp 인터페이스를 구현해요. Kernel 객체로 정의된 커널을 사용해 픽셀 단위로 컨볼루션을 수행해요.
필드
| 수식자·타입 | 필드 | 설명 |
|---|---|---|
static final int |
EDGE_NO_OP |
가장자리 픽셀을 그대로 복사하고 필터링하지 않아요. |
static final int |
EDGE_ZERO_FILL |
가장자리 픽셀을 0으로 채워요. |
생성자
public ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)
지정된 Kernel, 가장자리 조건, RenderingHints(null 가능)로 구성해요. edgeCondition은 EDGE_NO_OP 또는 EDGE_ZERO_FILL이에요.
public ConvolveOp(Kernel kernel)
지정된 Kernel로, 가장자리 조건은 EDGE_ZERO_FILL로 구성해요.
메서드 상세
getKernel()
public final Kernel getKernel()
이 op의 커널을 반환해요.
getEdgeCondition()
public final int getEdgeCondition()
이 op의 가장자리 조건을 반환해요.
filter(BufferedImage src, BufferedImage dst)
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
소스 BufferedImage를 컨볼루션해요. 소스 이미지의 각 컴포넌트(알파 포함)가 컨볼루션돼요. 소스와 목적지의 색 모델이 다르면 목적지에서 픽셀이 변환돼요. 목적지가 null이면 소스 ColorModel로 BufferedImage를 만들어요. 소스와 목적지가 같으면 IllegalArgumentException이 던져져요(인플레이스 연산 지원 안 함).
예외: NullPointerException — src가 null일 때 / IllegalArgumentException — src가 dst와 같을 때 / ImagingOpException — src를 필터링할 수 없을 때
filter(Raster src, WritableRaster dst)
public final WritableRaster filter(Raster src, WritableRaster dst)
소스 Raster를 컨볼루션해요. 소스 Raster의 각 밴드가 컨볼루션되고, 소스와 목적지는 같은 밴드 수를 가져야 해요. 목적지가 null이면 새 WritableRaster를 만들어요.
예외: NullPointerException — src가 null일 때 / ImagingOpException — src와 dst의 밴드 수가 다르거나 src를 필터링할 수 없을 때 / IllegalArgumentException — src가 dst와 같을 때
getBounds2D(BufferedImage src) / getBounds2D(Raster src)
public final Rectangle2D getBounds2D(BufferedImage src)
public final Rectangle2D getBounds2D(Raster src)
변환된 목적지의 경계 상자를 반환해요. 기하 연산이 아니므로 경계 상자는 바뀌지 않아요.
createCompatibleDestImage / createCompatibleDestRaster
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
public WritableRaster createCompatibleDestRaster(Raster src)
올바른 크기와 밴드 수의 0으로 채워진 목적지를 만들어요.
getPoint2D(Point2D srcPt, Point2D dstPt)
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
소스의 한 점에 대한 목적지 점의 위치를 반환해요.
getRenderingHints()
public final RenderingHints getRenderingHints()
이 op가 사용하는 렌더링 힌트를 반환해요.