ContextualRenderedImageFactory — 컨텍스트 렌더 이미지 팩토리 인터페이스

ContextualRenderedImageFactory — 컨텍스트 렌더 이미지 팩토리 인터페이스 (java.awt.image.renderable)

RenderableImageOp 인스턴스마다 달라질 수 있는 기능을 위한 인터페이스를 제공해요. 번역 시 "CRIF"로 흔히 줄여 불러요.

출처: Java API Reference

본문

ContextualRenderedImageFactoryRenderedImageFactory를 확장해요. 서로 다른 RenderableImage에 대한 서로 다른 연산이 ContextualRenderedImageFactory의 여러 인스턴스를 통해 단일 클래스(예: RenderedImageOp)로 수행될 수 있어요.

렌더링 독립적(rendering-independent) 체인에 사용될 모든 연산은 ContextualRenderedImageFactory를 구현해야 해요. 이 인터페이스를 구현하는 클래스는 인자가 없는 생성자를 제공해야 해요.

메서드

mapRenderContext(int i, RenderContext renderContext, ParameterBlock paramBlock, RenderableImage image)

RenderContext mapRenderContext(int i, RenderContext renderContext, ParameterBlock paramBlock, RenderableImage image)

연산의 출력 RenderContext를 각 연산 소스의 RenderContext로 매핑해요. 아핀 매핑처럼 RenderContext 변경만으로 전부 또는 일부 표현할 수 있는 연산, 또는 처리 노력·전송 대역폭을 아끼기 위해 소스의 더 낮은 품질 렌더링을 얻고자 하는 연산에 유용해요. 블러 같은 일부 연산도 필요 이상으로 높은 품질의 소스를 얻는 것을 피하는 데 이 메커니즘을 쓸 수 있어요.

create(RenderContext renderContext, ParameterBlock paramBlock)

RenderedImage create(RenderContext renderContext, ParameterBlock paramBlock)

RenderContext와 연산의 소스·파라미터를 담은 ParameterBlock이 주어졌을 때 렌더링을 생성해요. 출력은 RenderContext를 고려해 이미지 평면에서의 크기·배치를 결정하는 RenderedImage예요. 이 메서드가 렌더링 독립적 연산이 특정 RenderContext에 적응하도록 하는 "지능"을 담아요.

getBounds2D(ParameterBlock paramBlock)

Rectangle2D getBounds2D(ParameterBlock paramBlock)

주어진 소스 집합에 대해 렌더링 독립적 공간에서 수행된 연산 출력의 바운딩 박스를 반환해요. 부동소수점 모서리 좌표를 가진 축 정렬 사각형인 Rectangle2D로 반환해요.

getProperty(ParameterBlock paramBlock, String name)

Object getProperty(ParameterBlock paramBlock, String name)

name 파라미터가 지정한 속성의 적절한 인스턴스를 가져와요. 속성을 각각 지정하는 소스가 여러 개일 때 어떤 인스턴스를 반환할지 결정해야 해요.

getPropertyNames()

String[] getPropertyNames()

getProperty가 인식하는 이름 목록을 반환해요.

isDynamic()

boolean isDynamic()

같은 인자로 연속 렌더링(즉 create(RenderContext, ParameterBlock) 호출)이 서로 다른 결과를 만들 수 있으면 true를 반환해요. 기존 렌더링을 캐시해 재사용할 수 있는지 결정하는 데 쓰일 수 있어요. true를 반환해도 항상 안전해요.

더 알아보기