我想在用户选择的感兴趣区域上应用一些过滤器 [图像过滤器]。
我需要 API 来获取该区域的像素 [多边形或手绘矩形] 并应用
filter.any 对这项工作的建议?
我想在用户选择的感兴趣区域上应用一些过滤器 [图像过滤器]。
我需要 API 来获取该区域的像素 [多边形或手绘矩形] 并应用
filter.any 对这项工作的建议?
基本上,您需要做的是:
在伪代码中:
private BufferedImage bufferedImage = new BufferedImage()
private Graphics2D graphics = bufferedImage.createGraphics()
void paint(Graphics2D input) {
graphics.clip(selectionArea.getShape())
upperCanvas.paint(graphics)
BufferedImageOp op
bufferedImage = op.filter(bufferedImage, new BufferedImage())
input.drawImage(bufferedImage)
}
有关应用过滤器,请参阅java.awt.image
如您所见,这可以在 java2d 中完成,但 API 相当复杂。如果您有兴趣,我可以建议将pulpcore 作为替代框架。它包括几个预定义过滤器和一个用于应用它们的单行 API。见演示。还包括一个Java2DSprite 类,用于在pulpcore 和java2d 之间轻松移植。