Java写一个图像压缩代码,
时间: 2023-03-15 19:52:40 浏览: 80
以下是一个使用Java进行图像压缩的示例代码:
```java
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageCompression {
public static void main(String[] args) {
File input = new File("input.jpg");
File output = new File("output.jpg");
try {
BufferedImage image = ImageIO.read(input);
// 设置图像的压缩比率
float quality = 0.5f;
// 压缩图像
ImageIO.write(image, "jpg", output);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该示例代码将读取名为 "input.jpg" 的图像文件,并将其压缩至 "output.jpg",压缩比率为0.5f
如果想要更详细的压缩参数可以使用 ImageWriteParam,进行详细的参数设置。
```java
public void writeCompressedImage(BufferedImage image,File output,float quality) throws IOException {
// Get a ImageWriter for jpeg format.
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
if (!writers.hasNext())
throw new IllegalStateException("No writers found");
ImageWriter writer = (ImageWriter) writers.next();
// Create the ImageWriteParam to compress the image.
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(quality);
// The output will be a File object
FileImageOutputStream outputStream = new FileImageOutputStream(output);
writer.setOutput(outputStream);
// Write the image
writer.write(null, new IIOImage(image, null, null), param);
// close all streams
outputStream.close();
writer.dispose();
}
```
请注意,这只是一个简单的示例代码,在实际应用中可能需要进行更多的错误处理和调整。