縮放BufferedImage:綜合指南
問題陳述
問題陳述BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded); Graphics2D grph = image.createGraphics(); grph.scale(2.0, 2.0); grph.dispose();
問題陳述
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);問題陳述
,開發人員遇到了以下不成功的結果代碼:
解決方案雖然使用Graphics2D.scale() 縮放BufferedImage 的概念可能看起來很簡單,但必須注意此操作確實實際上並不會影響底層影像資料。為了實現真正的縮放,有必要使用 AffineTransformOp 類,它提供了增強的靈活性和插值選項。 進一步的考慮因素提供的程式碼片段舉例說明重採樣,一種創建具有所需尺寸的新圖像,同時保持原始圖像的原始長寬比的技術。相比之下,裁剪會改變尺寸和縱橫比,將在單獨的線程中討論。此外,還提供了相關概念的各種範例供進一步探索。以上是如何在 Java 中正確縮放 BufferedImage?的詳細內容。更多資訊請關注PHP中文網其他相關文章!