JAVA:复制多个新的BuffereImage
我试图在三个新的BuffereImage中复制相同的BuffereImage内容,这是我的代码:JAVA:复制多个新的BuffereImage,java,copy,clone,bufferedimage,Java,Copy,Clone,Bufferedimage,我试图在三个新的BuffereImage中复制相同的BuffereImage内容,这是我的代码: ColorModel cm = image.getColorModel(); boolean isAlphaPremultiplied = cm.isAlphaPremultiplied(); WritableRaster raster = image.copyData(null); BufferedImage[] images = { new Buf
ColorModel cm = image.getColorModel();
boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
WritableRaster raster = image.copyData(null);
BufferedImage[] images = {
new BufferedImage(cm, raster, isAlphaPremultiplied, null),
new BufferedImage(cm, raster, isAlphaPremultiplied, null),
new BufferedImage(cm, raster, isAlphaPremultiplied, null)
};
即使我以不同的方式编辑这些图像,结果也是一样的。我确信这一切都没问题,因为如果我只有一个副本,而不是多个副本,代码就可以正常工作
我怎么能处理这样的事情呢?我知道了。即使BuffereImage不同,ColorModel和WritableRaster也只是对相同对象的引用 如果有人遇到与我相同的问题,请尝试以下方法:
private BufferedImage copyImage() {
ColorModel cm = image.getColorModel();
boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
WritableRaster raster = image.copyData(null);
return new BufferedImage(cm, raster, isAlphaPremultiplied, null);
}
public BufferedImage[] copyUpdatedImage() {
BufferedImage[] images = {
copyImage(),
copyImage(),
copyImage()
};
}
有一些共享的内存-你如何管理什么??我看不到太多的代码,所以没有答案我不能发布数百行代码。不需要更多的代码。我自己找到了解决方案,谢谢。可能重复:关于copyImage方法,有更快的解决方案: