如何有效縮放BufferedImage
問題:
問題:BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded); Graphics2D grph = image.createGraphics(); grph.scale(2.0, 2.0); grph.dispose();
問題:
在下面的程式碼中,嘗試使用Graphics2D.scale() 縮放BufferedImage 不成功。這可能是什麼原因?答案:
BufferedImage before = getBufferedImage(encoded); int w = before.getWidth(); int h = before.getHeight(); BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); AffineTransform at = new AffineTransform(); at.scale(2.0, 2.0); AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); after = scaleOp.filter(before, after);
建立 AffineTransform 將影像縮放 2 倍。
建立 AffineTransformOp使用變換和特定插值類型 (TYPE_BILINEAR)。以上是為什麼 Graphics2D.scale() 不會調整 BufferedImage 的大小,以及如何有效地縮放它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!