3

bufferedImage を取得して半透明にし、結果の bufferedImage を返すメソッドをペイントしようとしています。そこから、後でペイントできます。しかし、私のコードは何も描画できません。私は近くにいると思います...

public BufferedImage ApplyTransparency(BufferedImage image)
{
    BufferedImage dest = new BufferedImage(overlay1.getWidth(), overlay1.getHeight(),
            BufferedImage.TYPE_INT_ARGB);

    Graphics2D g3 = dest.createGraphics(); 
    AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.DST_IN, 0.9F);
    g3.setComposite(ac);
    g3.drawImage(overlay1, 0, 0, null);

    return dest;
}
4

1 に答える 1

-1

次のように、透明度を調整して新しい画像に画像を描画できます

public Raster transform(Image img, float alpha) {
    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
    bi.getGraphics().drawImage(img, 0, 0, null);
    RasterOp rop = new RescaleOp(new float[] { 1.0f, 1.0f, 1.0f, alpha }, new float[] { 0.0f, 0.0f, 0.0f, 0.0f }, null);
    Raster result = rop.filter(bi.getData(), null);
    return result;
}
于 2012-11-17T17:49:00.853 に答える