LookupOp — 룩업 연산
LookupOp — 룩업 연산 (java.awt.image)
소스에서 목적지로 룩업(lookup) 연산을 구현하는 클래스예요. LookupTable 객체는 아래 제약에 따라 단일 배열이나 여러 배열을 포함할 수 있어요.
본문
LookupOp는 java.lang.Object를 확장하고 BufferedImageOp, RasterOp 인터페이스를 구현해요.
- Raster의 경우 룩업은 밴드에 대해 동작해요. 룩업 배열 수는 하나일 수 있고(그 경우 같은 배열이 모든 밴드에 적용), 아니면 소스 Raster의 밴드 수와 같아야 해요.
- BufferedImage의 경우 룩업은 색·알파 컴포넌트에 대해 동작해요. 룩업 배열 수는 하나일 수 있고(그 경우 같은 배열이 모든 색 컴포넌트에 적용), 아니면 소스 색 컴포넌트 수와 같을 수 있어요(그 경우 알파는 룩업되지 않음). 두 경우 모두 해당하지 않으면 룩업 배열 수는 소스 색 컴포넌트 수 + 알파 컴포넌트 수와 같아야 해요(그 경우 모든 색·알파 컴포넌트에 대해 룩업 수행). 이를 통해 다중 밴드 BufferedImage의 비균일 리스케일링이 가능해요.
- 프리멀티플라이 알파 데이터를 가진 BufferedImage 소스는 룩업 목적상 비프리멀티플라이 이미지와 동일하게 취급돼요(원시 데이터에 대해 밴드 단위로 룩업). 목적지 ColorModel로의 색 변환이 필요하면 이 단계에서 소스·목적지의 프리멀티플라이 상태가 고려돼요.
IndexColorModel을 가진 이미지는 사용할 수 없어요.- 생성자에
RenderingHints객체를 지정하면 색 변환 시 색 렌더링 힌트와 디더링 힌트를 사용할 수 있어요. - 소스가 목적지와 같을 수 있어요.
관련 힌트로 RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING을 참고해요.
생성자
public LookupOp(LookupTable lookup, RenderingHints hints)
룩업 테이블과 RenderingHints(nullable) 객체로 LookupOp 객체를 구성해요.
파라미터: lookup — 지정된 LookupTable / hints — 지정된 RenderingHints 또는 null
메서드 상세
getTable()
public final LookupTable getTable()
이 LookupOp의 LookupTable을 반환해요.
filter(BufferedImage src, BufferedImage dst)
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
BufferedImage에 룩업 연산을 수행해요. 소스와 목적지 이미지의 색 모델이 다르면 목적지에서 픽셀이 변환돼요. 목적지가 null이면 적절한 ColorModel로 BufferedImage를 만들어요.
예외: IllegalArgumentException — LookupTable의 배열 수가 클래스 설명의 제약을 충족하지 못하거나, 소스 이미지가 IndexColorModel을 가질 때
filter(Raster src, WritableRaster dst)
public final WritableRaster filter(Raster src, WritableRaster dst)
Raster에 룩업 연산을 수행해요. 목적지가 null이면 새 Raster를 만들어요.
예외: IllegalArgumentException — 소스·목적지 Raster의 밴드 수가 같지 않거나, LookupTable의 배열 수가 제약을 충족하지 못할 때
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으로 채워진 목적지를 만들어요. destCM이 null이면 적절한 ColorModel이 사용돼요.
getPoint2D(Point2D srcPt, Point2D dstPt)
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
소스의 한 점에 대한 목적지 점의 위치를 반환해요. 기하 연산이 아니므로 srcPt와 dstPt가 같아요.
getRenderingHints()
public final RenderingHints getRenderingHints()
이 op에 연결된 렌더링 힌트를 반환해요.