zhubaomin
2025-04-17 b63eef2cfb054b1ead234ab93e05a2aa28775d91
pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/util/ZipImg.java
New file
@@ -0,0 +1,81 @@
package com.dy.pipIrrWebFile.util;
import net.coobird.thumbnailator.Thumbnails;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
/**
 * 生成图片的缩略图
 */
public class ZipImg {
    public static InputStream zipToJpg(File file, int xSize, int ySize) throws Exception{
        return zip(file, "jpg", xSize, ySize) ;
    }
    public static InputStream zipToJpg(BufferedImage buf, int xSize, int ySize) throws Exception{
        return zip(buf, "jpg", xSize, ySize) ;
    }
    public static InputStream zipToPng(File file, int xSize, int ySize) throws Exception{
        return zip(file, "png", xSize, ySize) ;
    }
    public static InputStream zipToPng(BufferedImage buf, int xSize, int ySize) throws Exception{
        return zip(buf, "png", xSize, ySize) ;
    }
    public static void zipToFile(File file, File toFile, int xSize, int ySize) throws Exception{
        Thumbnails.of(file).size(xSize, ySize).outputQuality(0.5f).toFile(toFile);//0f-1f 质量越高
    }
    private static InputStream zip(File file, String type, int xSize, int ySize) throws Exception{
        BufferedImage bi = Thumbnails.of(file).size(xSize, ySize).outputQuality(1f).asBufferedImage();
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        ImageIO.write(bi, type, os);
        InputStream in = new ByteArrayInputStream(os.toByteArray());
        bi = null ;
        os = null ;
        return in ;
    }
    private static InputStream zip(BufferedImage buf, String type, int xSize, int ySize) throws Exception{
        BufferedImage bi = Thumbnails.of(buf).size(xSize, ySize).outputQuality(1f).asBufferedImage();
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        ImageIO.write(bi, type, os);
        InputStream in = new ByteArrayInputStream(os.toByteArray());
        bi = null ;
        os = null ;
        return in ;
    }
    public static void main(String[] args){
       File f = new File("D:/test.jpg") ;
       String name = f.getName() ;
       String path = f.getPath() ;
       System.out.println(name);
       System.out.println(path);
       int index = path.lastIndexOf(".") ;
       String s1 = path.substring(0, index) ;
       String s2 = path.substring(index) ;
       System.out.println(s1);
       System.out.println(s2);
       String newFilePath = s1 + "_" + s2 ;
       try {
          InputStream input = zipToJpg(f, 400, 400) ;
          new FileUtil().saveFile(newFilePath, input) ;
      } catch (Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
    }
}