如何复制图像/缓冲图像

3
我有一个BufferedImage,我想要复制它两次,并使用每个复制品的 Graphics 写一些东西。但是,如果我在其中一个上写了一些内容,其他所有复制品也会相应地发生变化。因此,我尝试使用 image.getSubImage(0, 0, image.getWidth(), image.getHeight()); 进行操作,但它并没有改变任何内容。
我不知道该怎么办,希望您能帮助我。

这是一个完整的库,所以它包含了很多类,Sinclair的解决方案可行!我只是等待,因为现在我无法验证这个解决方案。 - Litarvan
image.getSubImage(0, 0, image.getWidth(), image.getHeight() 只返回图像本身,而不是一个克隆。 - MCMastery
@TheShark34,你不需要链接整个项目...只需要相关的代码行就可以了。 - Dici
@TheShark34 Sinclair并没有提供解决方案,他(假设)只是提供了一个已有的问题和答案,显然回答了你的问题。换句话说:这是一个重复的问题。因此,我投票将其关闭为重复问题。 - Gimby
@MCMastery 哦,好的,我不能点赞,因为我的声望不够高,而且他提供的问题已经有了一个可行的解决方案,代码中使用了很多方法和东西,所以我没有提供代码。 - Litarvan
显示剩余2条评论
2个回答

3

哇,它可以工作了!我不知道为什么我没有找到这个解决方案,非常感谢你!我只需要等一会儿才能接受答案,但是非常感谢你! - Litarvan

1
请尝试类似以下的内容:
ColorModel model = image.getColorModel();
WritableRaster raster = image.copyData(null);
BufferedImage clone = new BufferedImage(model, raster, model.isAlphaPremultiplied(), null);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接