圖片壓縮工具類

案例代碼

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 {
            // 把圖片讀入到內(nèi)存中
            BufferedImage bufImg = ImageIO.read(inputStream);
            // 壓縮代碼,存儲圖片文件byte數(shù)組
            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);
            //先轉(zhuǎn)成jpg格式來壓縮,然后在通過OSS來修改成源文件本來的后綴格式
            ImageIO.write(bufferedImage,"jpg", bos);
            return bos.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            inputStream.close();
        }
        return null;
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容