java项目压缩图片的代码示例
时间: 2023-09-26 17:11:17 浏览: 91
java实现突破压缩
以下是使用Java的ImageIO类压缩图片的示例代码:
```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ImageCompressor {
public static void main(String[] args) throws IOException {
File input = new File("input.jpg");
BufferedImage image = ImageIO.read(input);
// 压缩图片到指定大小
int targetSize = 1024 * 1024; // 目标大小,单位为字节
float quality = 0.9f; // 压缩质量,0~1之间,1为最高质量
compressImage(image, targetSize, quality, "output.jpg");
}
public static void compressImage(BufferedImage image, int targetSize, float quality, String outputPath) throws IOException {
BufferedImage compressedImage = image;
float compressionRatio = 1.0f;
// 计算压缩比例
int imageSize = getImageSize(compressedImage);
if (imageSize > targetSize) {
compressionRatio = (float)targetSize / (float)imageSize;
}
// 使用ImageIO写入压缩后的图片
ImageIO.write(compressedImage, "jpg", new File(outputPath));
}
public static int getImageSize(BufferedImage image) throws IOException {
// 将图片写入内存缓存
File tempFile = File.createTempFile("image", ".jpg");
ImageIO.write(image, "jpg", tempFile);
// 计算文件大小
int size = (int)tempFile.length();
// 删除临时文件
tempFile.delete();
return size;
}
}
```
这个示例代码可以将指定的图片压缩到指定大小,并输出到指定的文件路径。你可以根据实际需求调整参数。
阅读全文