用java实现图片压缩
时间: 2023-10-01 15:09:25 浏览: 113
java代码实现图片压缩
Java中可以使用ImageIO类和BufferedImage类来实现图片压缩。
以下是一个简单的示例代码,可以将图片压缩到指定的宽度和高度:
```java
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageCompressor {
public static void main(String[] args) {
try {
// 读取原始图片
BufferedImage originalImage = ImageIO.read(new File("path/to/image"));
// 压缩后的宽度和高度
int compressedWidth = 500;
int compressedHeight = 500;
// 计算压缩比例
double ratio = Math.min((double) compressedWidth / originalImage.getWidth(),
(double) compressedHeight / originalImage.getHeight());
// 计算压缩后的宽度和高度
int width = (int) (originalImage.getWidth() * ratio);
int height = (int) (originalImage.getHeight() * ratio);
// 创建压缩后的图片
BufferedImage compressedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 绘制压缩后的图片
compressedImage.createGraphics().drawImage(originalImage, 0, 0, width, height, null);
// 将压缩后的图片保存到文件
ImageIO.write(compressedImage, "jpg", new File("path/to/compressed/image"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,压缩后的图片可能会失真,压缩比例越大,失真越明显。因此,需要根据实际情况选择合适的压缩比例。
阅读全文