ホームページ >Java >&#&チュートリアル >Java イメージのサイズを変更すると低品質になるのはなぜですか?どうすれば改善できますか?
Java でサイズ変更後の低画質
この問題は、画像を大きなサイズ (例: 300x300) から大幅にサイズ変更するときに発生します。 1 回のステップでより小さいサイズ (例: 60x60) に変更できます。これは必然的に品質の低下につながります。
サイズ変更のための分割統治法
この問題を軽減するには、分割統治法を使用することをお勧めします。
実装例
これは Java コードです分割統治を実装するスニペット方法:
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; } }
この方法を使用すると、リサイズ後の画質が大幅に向上します。
以上がJava イメージのサイズを変更すると低品質になるのはなぜですか?どうすれば改善できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。