我能够用以下这一行更改BufferedImage的alpha值:
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, rail0FlashList.get(fl)));
这里的问题是,此行之后出现的所有其他组件也都受到了影响。有没有办法更改单个选定的BufferedImage的alpha值?
答案 0 :(得分:1)
我在这里有点猜测,但是...
Graphics2D ga = (Graphics2D)g2.create();
ga.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, rail0FlashList.get(fl)));
// Use ga to render what ever needs to be painted with the alpha composite
ga.dispose();
基本上,它创建Graphics
状态的快照,允许您对其进行修改,而不会影响原始上下文的状态。在处理转换时也非常有用