BufferedImage作为参数传递时会丢失alpha

时间:2016-11-19 02:11:32

标签: java pass-by-reference bufferedimage alpha

我遇到的问题是,作为缓冲图片加载的图片是否正确包含了Alpha通道。但是当作为参数传递时,alpha通道会丢失。

我像这样加载图像:

split2

然后我画这样(alpha通道保持不变):

MousePointer = ImageIO.read(getClass().getResourceAsStream("sprites/Mouse-sheet.png"));

但是当我使用自己的函数绘制时,alpha通道会丢失:

g.drawImage(Sprites.MousePointer, mouse.x, mouse.y, 64, 64, null);

为什么alpha通道会丢失,java变量是指针,因此传递引用因此它没有意义?我该怎么做才能阻止它?

你可以在这里看到结果:YouTube video我只显示处于破碎状态的图像,当时我将一种方法混淆为另一种方法而导致没有任何变化。

1 个答案:

答案 0 :(得分:0)

对于其他任何遇到此问题的人(来自一种语言,你总是要求我像我一样提供颜色)我能够通过一个简单的改变来修复它。我刚刚删除了颜色参数。

像@haraldK所说的那样,与其他语言不同,颜色不是用于图像的着色,而是将所有alpha改为该颜色。