ホームページ >Java >&#&チュートリアル >Java イメージのサイズを変更すると低品質になるのはなぜですか?どうすれば改善できますか?

Java イメージのサイズを変更すると低品質になるのはなぜですか?どうすれば改善できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 08:18:25610ブラウズ

Why Does My Java Image Resize Result in Low Quality, and How Can I Improve It?

Java でサイズ変更後の低画質

この問題は、画像を大きなサイズ (例: 300x300) から大幅にサイズ変更するときに発生します。 1 回のステップでより小さいサイズ (例: 60x60) に変更できます。これは必然的に品質の低下につながります。

サイズ変更のための分割統治法

この問題を軽減するには、分割統治法を使用することをお勧めします。

  1. 画像を中間サイズにサイズ変更します (例: 150x150).
  2. 中間画像のサイズを最終サイズ (例: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。