从pagespeed我只获得图像链接和可能的字节和百分比优化,如压缩和调整大小https://example.com/…ts/xyz.jpg?036861可以节省212KiB(减少51%) . 压缩https://example.com/…xyz.png?303584508可以节省4.4KiB(减少21%) .
举个例子,我有300kb的图像,对于这个图像,pagespeed显示100kb和30%的缩小 .
这仅适用于一张图片,但我相信我会有很多图像用于压缩 . 那么如何通过将字节或百分比作为参数或使用java中的任何其他计算(通过使用API或图像处理工具)来压缩图像,这样,我可以获得谷歌建议的压缩版图像 .
提前致谢 .
2 回答
您可以使用Java ImageIO包对许多图像格式进行压缩,这是一个示例
你可以找到更多关于它的详细信息here
还有一些像这样的第三方工具
https://collicalex.github.io/JPEGOptimizer/
https://github.com/depsypher/pngtastic
EDIT: 如果您想在您的应用程序中使用Google
PageSpeed
,它可用作Apache或Nginx的Web服务器模块,您可以在此处找到如何为您的网站配置它https://developers.google.com/speed/pagespeed/module/
但是,如果要在应用程序中集成
PageSpeed
C库,可以在此处找到它的构建说明 .https://developers.google.com/speed/pagespeed/psol
它还有一个Java客户端
https://developers.google.com/api-client-library/java/apis/pagespeedonline/v1
有颜色压缩(“压缩质量”)并且存在分辨率压缩(“调整大小”) . Fujy的答案涉及压缩质量,但这并不是主要节省的原因:主要节省来自于调整尺寸缩小 . 例如 . 我使用fujy的答案使用最大压缩质量得到了一张4mb照片到207K,它看起来很糟糕,但是我使用合理的质量但尺寸更小将它降低到12K .
所以上面的代码应该用于“压缩质量”,但这是我建议调整大小:
https://github.com/rkalla/imgscalr/blob/master/src/main/java/org/imgscalr/Scalr.java
我希望调整大小是标准Java库的一部分,但它似乎不是,(或标准方法存在图像质量问题?) . 但是里亚德的图书馆真的很小 - 它只是一个 class . 我只是将这个类复制到我的项目中,因为我从来没有学过如何使用Maven,而且效果很好 .