我想在用户选择的感兴趣区域应用一些过滤器[图像过滤器]。
我需要API来获取此区域的像素[多边形或手绘也是矩形]并应用
filter.any对这项工作的建议?
答案 0 :(得分:0)
基本上,您需要做的是:
在伪代码中:
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非常复杂。如果您有兴趣,我可以建议将纸浆作为替代框架。它包括几个预定义过滤器和一个用于应用它们的单行API。见demo。还包括一个Java2DSprite类,可以轻松地在pulpcore和java2d之间移植。