簡體   English   中英

如何克隆圖像?

[英]How to clone Image?

我有一個圖像。 我需要制作它的精確副本並將其保存到 BufferedImage,但沒有 Image.clone()。 這個東西應該在一個計算循環內,所以它應該非常快,沒有逐像素復制。 執行此操作的最佳性能方法是什么?

您可以繪制緩沖圖像,因此創建一個空白的bufferedImage ,從中創建圖形上下文,然后將原始圖像繪制到它。

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

還有一種方法:

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

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

這可能不是很漂亮,但顧名思義, getScaledInstance返回原始Image對象的實例。 通常僅用於調整大小。 -1告訴方法保持縱橫比不變

您可以創建一個方法來返回要克隆的圖像的子圖像。

如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM