圖片壓縮工具類

案例代碼

import lombok.extern.slf4j.Slf4j;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;


@Slf4j
public class ImgUtils {




    public static void main(String[] args) throws IOException {
        File file = new File("F:\\測試圖片\\3.jpg");
        String fileName = file.getName();
        FileInputStream fileInputStream = new FileInputStream(file);
        byte[] imageCom = getImageCom(fileInputStream);
        FileOutputStream fileOutputStream = new FileOutputStream("F:\\測試圖片\\new\\" + fileName);
        fileOutputStream.write(imageCom);
        fileOutputStream.flush();
        fileOutputStream.close();
    }



    public static byte[] getImageCom(InputStream inputStream) throws IOException {
        try {
            // 把圖片讀入到內存中
            BufferedImage bufImg = ImageIO.read(inputStream);
            // 壓縮代碼,存儲圖片文件byte數組
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            //防止圖片變紅,這一步非常重要
            BufferedImage bufferedImage = new BufferedImage(bufImg.getWidth(), bufImg.getHeight(), BufferedImage.TYPE_INT_RGB);
            bufferedImage.createGraphics().drawImage(bufImg,0,0, Color.WHITE,null);
            //先轉成jpg格式來壓縮,然后在通過OSS來修改成源文件本來的后綴格式
            ImageIO.write(bufferedImage,"jpg", bos);
            return bos.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            inputStream.close();
        }
        return null;
    }

}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容