如何克隆图片?

时间:2012-01-14 18:15:39

标签: java performance image clone copying

我有一张图片。我需要准确地复制它并将其保存到BufferedImage,但是没有Image.clone()。事情应该在计算循环内部,所以它应该非常快,没有逐像素复制。执行此操作的性能方法最好的是什么?

4 个答案:

答案 0 :(得分:8)

您可以绘制到缓冲图像,因此请创建一个空白 bufferedImage ,从中创建图形上下文,然后将原始图像绘制到其中。

BufferedImage copyOfImage = 
   new BufferedImage(widthOfImage, heightOfImage, BufferedImage.TYPE_INT_RGB);
Graphics g = copyOfImage.createGraphics();
g.drawImage(originalImage, 0, 0, null);

答案 1 :(得分:0)

还有另一种方式:

BufferedImage copyOfImage = image.getSubimage(0, 0, image.getWidth, image.getHeight);

答案 2 :(得分:0)

Image clone = original.getScaledInstance(original.getWidth(), -1, Image.SCALE_DEFAULT);

这可能不是很漂亮,但顾名思义,getScaledInstance会返回原始Image对象的实例。通常仅用于调整大小。 -1告诉方法保持纵横比

答案 3 :(得分:0)

您可以创建一种方法,该方法返回要克隆的图像的子图像。

例如:

public static BufferedImage clone(BufferedImage img)
{
  return img.getSubimage(img.getMinX(), img.getMinY(), img.getWidth(), img.getHeight());
}