我试图做出类似的事情: Alpha Gradient Mask使用javafx
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
我找到了使用“AlphaComposite”功能的方法。
这是我的代码:
private Image mask;
private Image dest;
private float alpha = 1f;
private void loadImages() {
mask = new ImageIcon("resources/source.png").getImage();
dest = new ImageIcon("resources/destination.png").getImage();
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
BufferedImage buffImg = new BufferedImage(500, 400,
BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = buffImg.createGraphics();
AlphaComposite ac = AlphaComposite.getInstance(
AlphaComposite.SRC_IN, alpha);
gbi.drawImage(mask, 0, 0, null);
gbi.setComposite(ac);
gbi.drawImage(dest, 0, 0, null);
g2d.drawImage(buffImg, 20, 20, null);
gbi.dispose();
g2d.dispose();
}
这是我得到的:
我想在Javafx中做同样的事情,因为我正在使用Javafx图像(或来自OPENCV Library的Mat图像)。