Kualiti Imej Rendah selepas Saiz semula dalam Java
Isu timbul apabila mengubah saiz imej daripada saiz besar (cth., 300x300) kepada ketara saiz yang lebih kecil (cth., 60x60) dalam satu langkah. Ini sudah pasti membawa kepada kemerosotan kualiti.
Kaedah Bahagi dan Takluk untuk Mengubah Saiz
Untuk mengurangkan masalah ini, adalah disyorkan untuk menggunakan pendekatan divide and conquer.
Contoh Pelaksanaan
Berikut ialah kod Java coretan yang melaksanakan divide and conquer kaedah:
public class ImageResizer { public BufferedImage resize(BufferedImage original, Dimension finalSize) { // Get intermediate size. Dimension intermediateSize = new Dimension(original.getWidth() / 2, original.getHeight() / 2); // Resize to intermediate size. BufferedImage intermediateImage = resize(original, intermediateSize); // Resize to final size. BufferedImage resizedImage = resize(intermediateImage, finalSize); // Return the resized image. return resizedImage; } private BufferedImage resize(BufferedImage image, Dimension size) { BufferedImage scaledImage = new BufferedImage(size.width, size.height, image.getType()); Graphics2D graphics = scaledImage.createGraphics(); // Set rendering hints for better quality. graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // Draw the original image scaled to the new size. graphics.drawImage(image, 0, 0, size.width, size.height, null); // Dispose of the graphics object. graphics.dispose(); // Return the scaled image. return scaledImage; } }
Dengan menggunakan kaedah ini, anda boleh mencapai kualiti imej yang dipertingkatkan dengan ketara selepas mengubah saiz.
Atas ialah kandungan terperinci Kenapa Saiz Imej Java Saya Menghasilkan Kualiti Rendah, dan Bagaimana Saya Boleh Memperbaikinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!