ホームページ  >  記事  >  Java  >  Javaで画像サイズを圧縮する方法

Javaで画像サイズを圧縮する方法

WBOY
WBOY転載
2023-04-19 16:28:122190ブラウズ

利用シーン:

1. 画像アップロード機能を使用する場合、アップロードする画像が大きすぎてサーバーリソースを過剰に使用する場合
2. クライアントがアップロードする画像のサイズユーザーに固定サイズで表示する場合、アップロードされた画像は java

関数プレビュー

#1 を介して均一に処理できます。圧縮前

Javaで画像サイズを圧縮する方法

2. 圧縮後

Javaで画像サイズを圧縮する方法

コード実装:

package com.linghu.test;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/*
 * @author 在下令狐
 * @describe  压缩图片大小
 * @date 2020/6/12
 */
public class TestCompressImage {
    public static void main(String[] args) {
        try {
            //图片所在路径
            BufferedImage templateImage = ImageIO.read(new File("f:/temp/linghu.jpg"));


            //原始图片的长度和宽度
            int height = templateImage.getHeight();
            int width = templateImage.getWidth();

            //通过比例压缩
            float scale = 0.5f;

            //通过固定长度压缩
            /*int doWithHeight = 100;
            int dowithWidth = 300;*/

            //压缩之后的长度和宽度
            int doWithHeight = (int) (scale * height);
            int dowithWidth = (int) (scale * width);

            BufferedImage finalImage = new BufferedImage(dowithWidth, doWithHeight, BufferedImage.TYPE_INT_RGB);

            finalImage.getGraphics().drawImage(templateImage.getScaledInstance(dowithWidth, doWithHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);


            //图片输出路径,以及图片名
            FileOutputStream  fileOutputStream = new FileOutputStream("f:/temp/linghuAfterDoWith.jpg");
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
            encoder.encode(finalImage);
            fileOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上がJavaで画像サイズを圧縮する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。