将图像中的颜色部分替换为另一个图像 - Java



我正在尝试用2D Java创建一个武器渲染系统,纯Java。但是,在将武器渲染到角色上时,我遇到了一个问题。我需要将武器渲染到角色图像上的"绿屏"位置。测试版角色图像。该图像的浅绿色部分需要替换为此部分。角色图像的绿色部分不是静态的,武器并不总是这种形状。我见过的最接近的问题是: 更改图像中的颜色 - (JAVA 中的绿屏)。但是,这个问题没有得到回答。

我没有为此做任何代码,但我正在考虑逐个像素数组并获取该部分,但对于大图像似乎效率不高。我最初计划在屏幕上获取玩家的位置,并偏移武器以渲染到需要的位置。问题是我真的不知道如何有效地做到这一点。

去掉绿色像素。然后:

  1. 如果你的角色是静态的,请执行以下操作: 示例武器图像与示例角色图像的大小相同。只要保持这种方式,并在每一帧将角色和武器渲染在同一位置。

  2. 如果您有不同的角色,武器
  3. 需要位于不同的位置,请将武器偏移量存储在某个文件中,例如:

    "字符 1", "字符 1.png", 12, 14

    "字符 2", "字符 2.png", 10, 9

    或者其他任何在您的情况下有意义的事情。然后缩小武器图像的大小并将其绘制在角色位置 + 文件中提供的偏移量。

  4. 如果您有动画角色,武器位置会发生变化,请存储每个帧的偏移量。

如果你真的想用另一个图像中的像素替换一个图像中的像素,并且使用纯Java,而不是GPU加速,你必须通过一个简单的循环逐个像素地完成。

最新更新