除了AlphaComposite,还有其他方法可以更改Java中的图像不透明度吗?

时间:2019-04-22 00:32:36

标签: java alpha graphics2d alphablending

我正在制作Java2D游戏,并且尝试对同一图像进行alpha混合,以创建类似于模糊的东西。

使用AlphaComposite的速度确实很慢,并且将平均帧速率从170降低到90,这似乎不成问题(因为大多数游戏运行在60),但是有时帧速率降至低于45(也许是因为我会花更多时间使用我的计算机吗?(不确定),我尝试应用的单个效果似乎很多。

在我的构造函数中,我有

AlphaComposite blurAlpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f);

AlphaComposite opaque = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1);

然后在主循环中: (很明显,g是Graphics2D对象,游戏是游戏的预渲染图像)

g.setComposite(blurAlpha);
g.drawImage(game, -1, 0, null);
g.drawImage(game, 1, 0, null);
g.setComposite(opaque);

起初,我认为帧速率下降是由于两次绘制图像所致,但是当我删除setComposite行时,帧速率上升到150。

0 个答案:

没有答案