Class ImageCompressor
java.lang.Object
com.sankcrm.erp.contract.jzq.infrastructure.ImageCompressor
Java 21图片压缩工具类
支持按尺寸缩放、按质量压缩、指定输出格式等功能
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic InputStreamcompressImage(byte[] bytes, int targetWidth, int targetHeight, URI uri) 压缩图片(按质量和尺寸双重压缩)static InputStreamcompressImage(File file, int targetWidth, int targetHeight) 压缩图片(按质量和尺寸双重压缩)static voidcompressImage(InputStream inputStream, OutputStream outputStream, int targetWidth, int targetHeight, float quality, String format) 压缩图片(按质量和尺寸双重压缩)static voidcompressImageByQuality(InputStream inputStream, OutputStream outputStream, float quality, String format) 仅按质量压缩图片(不改变尺寸)static InputStreamconvertToInputStream(BufferedImage image, String format) 将BufferedImage转换为InputStreamstatic StringgetFileExtension(File file) static StringgetFileFormat(URI uri) 从 URI 中提取文件格式(扩展名,不含 ".")static StringgetFileName(URI uri) 从 URI 中提取文件名(含扩展名)static booleanisLargerThan2MB(File file) static voidstatic voidscaleImage(InputStream inputStream, OutputStream outputStream, int targetWidth, int targetHeight, String format) 仅按尺寸缩放图片(不改变质量)
-
Constructor Details
-
ImageCompressor
public ImageCompressor()
-
-
Method Details
-
compressImage
public static void compressImage(InputStream inputStream, OutputStream outputStream, int targetWidth, int targetHeight, float quality, String format) throws IOException 压缩图片(按质量和尺寸双重压缩)- Parameters:
inputStream- 原始图片输入流outputStream- 压缩后图片输出流targetWidth- 目标宽度(像素)targetHeight- 目标高度(像素)quality- 压缩质量(0.0-1.0,1.0为最高质量)format- 输出图片格式(如"jpeg"、"png")- Throws:
IOException- 处理过程中的IO异常
-
compressImage
public static InputStream compressImage(File file, int targetWidth, int targetHeight) throws IOException 压缩图片(按质量和尺寸双重压缩)- Parameters:
targetWidth- 目标宽度(像素)targetHeight- 目标高度(像素)- Throws:
IOException- 处理过程中的IO异常
-
compressImage
public static InputStream compressImage(byte[] bytes, int targetWidth, int targetHeight, URI uri) throws IOException 压缩图片(按质量和尺寸双重压缩)- Parameters:
targetWidth- 目标宽度(像素)targetHeight- 目标高度(像素)- Throws:
IOException- 处理过程中的IO异常
-
isLargerThan2MB
-
convertToInputStream
public static InputStream convertToInputStream(BufferedImage image, String format) throws IOException 将BufferedImage转换为InputStream- Parameters:
image- 待转换的图片对象(如scaledImage)format- 图片格式(如"jpeg"、"png"、"gif")- Returns:
- 转换后的InputStream
- Throws:
IOException- 转换过程中发生IO异常
-
compressImageByQuality
public static void compressImageByQuality(InputStream inputStream, OutputStream outputStream, float quality, String format) throws IOException 仅按质量压缩图片(不改变尺寸)- Throws:
IOException
-
scaleImage
public static void scaleImage(InputStream inputStream, OutputStream outputStream, int targetWidth, int targetHeight, String format) throws IOException 仅按尺寸缩放图片(不改变质量)- Throws:
IOException
-
main
-
getFileExtension
-
getFileName
从 URI 中提取文件名(含扩展名)- Parameters:
uri- 目标 URI- Returns:
- 文件名(如 "image.jpg");若无法提取则返回 null
-
getFileFormat
从 URI 中提取文件格式(扩展名,不含 ".")- Parameters:
uri- 目标 URI- Returns:
- 格式(如 "jpg");若无扩展名则返回 null
-