我试图使用graphics.drawImage()
绘制一个图像到另一个图像,但它只能为某些图像准确地工作,而其他图像则会混乱。我的代码如下,我确定texture
是进入方法时的正确图像,所以绝对不是。有任何想法吗?Java的Graphics.drawImage产生一个不准确的图像
private BufferedImage currentSheet;
public void swapRegionWithTexture(Rectangle region, Image texture) {
Graphics sheetGraphics = currentSheet.createGraphics();
for (int ix = region.x; ix < region.x + region.width; ix++) {
for (int iy = region.y; iy < region.y + region.height; iy++) {
currentSheet.setRGB(ix, iy, 0x000000);
}
}
sheetGraphics.drawImage(texture, region.x, region.y, null);
sheetGraphics.dispose();
}
的总体思路是:
- 抓住图形绘制到。
- 清除将绘制的图形部分。
- 在图形的给定位置绘制图像。
- 处理图形。
你能定义不准确吗?也许提供期望和实际输出的屏幕截图? – corsiKa 2012-07-19 19:25:23
这似乎是一个alpha问题。您是否尝试将'BufferedImage.TYPE_INT_ARGB'更改为'BufferedImage.TYPE_INT_RGB'? – elias 2012-07-19 19:55:11
是的,它只是完全删除了alpha通道。 – 2012-07-19 23:27:00