首頁  >  文章  >  Java  >  如何在 Java 中正確縮放 BufferedImage?

如何在 Java 中正確縮放 BufferedImage?

Susan Sarandon
Susan Sarandon原創
2024-11-20 17:02:16324瀏覽

How Can I Properly Scale a BufferedImage in Java?

縮放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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn