你如何拷贝一个BufferedImage?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (109)

我有一个有许多bufferedimages的对象,我想创建一个新的对象,将所有的bufferedimages复制到新的对象中,但是这些新的图像可能会被改变,我不希望改变原始对象图像新的物体图像。明白了吗?

我曾想过getSubImage,但是在某处读取子图像的任何更改都会重新选回父图像。

我只是想能够得到一个完全独立的副本或一个BufferedImage的拷贝。

提问于
用户回答回答于

代码:

static BufferedImage deepCopy(BufferedImage bi) {
 ColorModel cm = bi.getColorModel();
 boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
 WritableRaster raster = bi.copyData(null);
 return new BufferedImage(cm, raster, isAlphaPremultiplied, null);
}
用户回答回答于

代码:

public static BufferedImage copyImage(BufferedImage source){
    BufferedImage b = new BufferedImage(source.getWidth(), source.getHeight(), source.getType());
    Graphics g = b.getGraphics();
    g.drawImage(source, 0, 0, null);
    g.dispose();
    return b;
}

所属标签

可能回答问题的人

  • EatRice

    16 粉丝0 提问138 回答
  • 学生

    8 粉丝476 提问522 回答
  • 富有想象力的人

    5 粉丝0 提问344 回答
  • 最爱开车啦

    9 粉丝503 提问1.6K 回答

扫码关注云+社区

领取腾讯云代金券