如何克隆图像?

发布于 2024-12-27 04:10:22 字数 107 浏览 3 评论 0原文

我有一个图像。我需要精确复制它并将其保存到 BufferedImage,但没有 Image.clone()。该东西应该位于计算循环内,因此它应该非常快,没有逐像素复制。执行此操作的最佳性能方法是什么?

I have an Image. I need to make a exactly copy of it and save it to BufferedImage, but there is no Image.clone(). The thing should be inside a calculating loop and so it should be really fast, no pixel-by-pixel copying. What's the best in perfomance method to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

记忆之渊 2025-01-03 04:10:22

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

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

You can draw to a buffered image, so make a blank bufferedImage, create a graphics context from it, and draw your original image to it.

BufferedImage copyOfImage = 
   new BufferedImage(widthOfImage, heightOfImage, BufferedImage.TYPE_INT_RGB);
Graphics g = copyOfImage.createGraphics();
g.drawImage(originalImage, 0, 0, null);
橪书 2025-01-03 04:10:22

还有另一种方法:

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

There is another way:

BufferedImage copyOfImage = image.getSubimage(0, 0, image.getWidth, image.getHeight);
薯片软お妹 2025-01-03 04:10:22

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

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

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

This might not be very pretty, but getScaledInstance returns, as the name suggests, an instance of your original Image object. Usually only used for resizing. -1 tells the method to keep the aspect ratio as it is

如梦 2025-01-03 04:10:22

您可以创建一个方法来返回要克隆的图像的子图像。

例如:

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

You can create a method that returns the subimage of the image you want to clone.

Such as:

public static BufferedImage clone(BufferedImage img)
{
  return img.getSubimage(img.getMinX(), img.getMinY(), img.getWidth(), img.getHeight());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文