您可以使用Java ImageIO
包爲許多圖像格式做了壓縮,這裏有一個例子
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Iterator;
import javax.imageio.*;
import javax.imageio.stream.*;
public class Compresssion {
public static void main(String[] args) throws IOException {
File input = new File("original_image.jpg");
BufferedImage image = ImageIO.read(input);
File compressedImageFile = new File("compressed_image.jpg");
OutputStream os = new FileOutputStream(compressedImageFile);
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter) writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(0.05f); // Change the quality value you prefer
writer.write(null, new IIOImage(image, null, null), param);
os.close();
ios.close();
writer.dispose();
}
}
你可以找到關於它here
也有一些第三方工具,如更多細節這些
編輯:如果你想在你的應用程序中使用谷歌PageSpeed
,可用的是無論是對Apache或Nginx的網絡服務器模塊,你可以找到如何配置它爲您的網站在這裏
https://developers.google.com/speed/pagespeed/module/
但是,如果您想將PageSpeed
C++庫集成到您的應用程序中,您可以在這裏找到它的構建指令。
https://developers.google.com/speed/pagespeed/psol
它也有在這裏
https://developers.google.com/api-client-library/java/apis/pagespeedonline/v1
使用ImageWriteParam我得到了圖像的壓縮版本,但我不需要壓縮任何谷歌網頁速度建議。 所以,基本上我想圖像的壓縮版本無論谷歌網頁速度暗示。 –
@DarshitPatel我已經更新了我的答案,請檢查它 – fujy
關於此答案的很多有趣的信息。謝謝:) –