Rumah  >  Artikel  >  Java  >  Bagaimana untuk memampatkan saiz imej dalam Java

Bagaimana untuk memampatkan saiz imej dalam Java

WBOY
WBOYke hadapan
2023-04-19 16:28:122190semak imbas

Senario penggunaan:

1 Apabila menggunakan fungsi muat naik imej, imej yang dimuat naik adalah terlalu besar, menyebabkan terlalu banyak penggunaan sumber pelayan
2 adalah berbeza, dan keperluan bahagian hadapan Apabila memaparkan saiz tetap kepada pengguna, imej yang dimuat naik boleh diproses secara seragam melalui java

Pratonton fungsi

Sebelum pemampatan

Bagaimana untuk memampatkan saiz imej dalam Java

2. Selepas pemampatan

Bagaimana untuk memampatkan saiz imej dalam Java

pelaksanaan kod:

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();
        }
    }
}

Atas ialah kandungan terperinci Bagaimana untuk memampatkan saiz imej dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam