Cara Meningkatkan Kualiti Imej Selepas Saiz Semula dalam Java
Mengurangkan skala imej dengan ketara selalunya boleh mengakibatkan penurunan kualiti yang ketara. Walau bagaimanapun, dengan menggunakan pendekatan bahagi dan takluk, anda boleh mengurangkan isu ini, memastikan imej saiz semula anda mengekalkan tahap perincian yang lebih tinggi.
Kaedah Bahagi dan Takluk:
Daripada menskalakan imej terus kepada saiz akhir, pecahkan proses kepada langkah yang lebih kecil. Contohnya, untuk mengubah saiz imej 650x748 agar muat dalam 60x60, mulakan dengan mengecilkannya kepada 325x374 (50% daripada saiz asal). Kemudian, turunkannya semula kepada 162x187 (50% daripada saiz sebelumnya). Akhir sekali, skalakannya kepada saiz sasarannya 60x60, menghasilkan imej kualiti yang jauh lebih tinggi berbanding jika saiz semula dilakukan dalam satu langkah besar.
Kod Contoh:
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; }
Petua Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Kualiti Imej Tinggi Selepas Penskalaan Rendah di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!