如何在 Java 中調整大小後提高影像品質
顯著縮小影像尺寸通常會導致品質明顯下降。但是,透過採用分而治之的方法,您可以緩解此問題,確保調整大小後的影像保持更高水平的細節。
分而治之方法:
不要將影像直接縮放到最終尺寸,而是將過程分解為更小的步驟。例如,要調整 650x748 影像的大小以適應 60x60,首先將其縮小到 325x374(原始大小的 50%)。然後,再次將其縮小到 162x187(之前大小的 50%)。最後,將其縮放至 60x60 的目標尺寸,從而獲得比一步一步調整大小更高品質的影像。
範例程式碼:
public static BufferedImage getScaledInstanceToFit(BufferedImage img, Dimension size) { float scaleFactor = getScaleFactorToFit(img, size); return getScaledInstance(img, scaleFactor); } public static float getScaleFactorToFit(BufferedImage img, Dimension size) { float scale = 1f; if (img != null) { int imageWidth = img.getWidth(); int imageHeight = img.getHeight(); scale = getScaleFactorToFit(new Dimension(imageWidth, imageHeight), size); } return scale; } public static float getScaleFactorToFit(Dimension original, Dimension toFit) { float scale = 1f; if (original != null && toFit != null) { float dScaleWidth = getScaleFactor(original.width, toFit.width); float dScaleHeight = getScaleFactor(original.height, toFit.height); scale = Math.min(dScaleHeight, dScaleWidth); } return scale; }
額外提示:
以上是Java降尺度後如何維持高影像品質?的詳細內容。更多資訊請關注PHP中文網其他相關文章!