如何制作Alpha渐变面膜?

时间:2016-01-07 20:37:54

标签: javafx computer-vision

我试图做出类似的事情: Alpha Gradient Mask使用javafx

关于如何做到这一点的任何想法?

1 个答案:

答案 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();
}

这是我得到的:

Original image & Mask

Result

我想在Javafx中做同样的事情,因为我正在使用Javafx图像(或来自OPENCV Library的Mat图像)。