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

BufferedImage loses alpha when passed as a parameter

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

我这样加载图片:

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

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

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

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

mouseAnimation.DrawAbsolute(Sprites.MousePointer, g, mouse.x, mouse.y, 4, 4, deltaTime);

为什么 alpha 通道丢失,java 变量是指针,因此是按引用传递的,所以没有意义?我能做些什么来防止它?

您可以在此处查看结果:YouTube video 我只显示损坏状态的图像,当时我混淆了一种方法和另一种方法,结果没有任何改变。

对于遇到此问题的任何其他人(来自一种语言,在这种语言中总是要求您像我一样在绘图时提供颜色)我可以通过一个简单的更改来解决它。我刚刚删除了颜色参数。

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