5

拥有一个电子商务网站,我们有成千上万的产品图片。在谷歌上检查页面速度时,它向我显示了这样的内容:

在此处输入图像描述

我想知道,Java 中是否有任何内置功能或任何第三方库可用,我们可以通过这些功能无损压缩我们托管的所有图像。因此,我们可以节省几 KB 的客户。

在网上搜索时,我发现很少有像 punnypng 和 kraken 这样付费的,因此我们没有每个月上传大量图片,订阅它们是不值得的。我更喜欢 Java 中的任何内置功能或任何开源第三方库。

我遇到了JAI,但不确定它是否解决了这个问题。有人有这方面的实践经验吗?

PS我们使用的是Java 8

4

3 回答 3

2

您是否查看过 javax.imageio 包 ( http://docs.oracle.com/javase/7/docs/api/javax/imageio/package-summary.html ) 中的类?

您可以对图像进行解码和重新编码。ImageWriteParam 类 ( http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageWriteParam.html ) 允许您自定义压缩设置。

于 2014-12-28T14:19:06.903 回答
0

大约 600 KB 的 jpeg 图像对于屏幕来说相当大,但不适合打印。在一个页面上拥有多个图像意味着或多或少地使“拇指”视图变小。并提供具有更高分辨率的单个产品页面,例如 600 KB JPEG。标准 ImageIO 足以进行转换,请参阅@NicolaFerraro。

通过将较小的视图存储到一个大图像中,可以在具有多个图像的概览页面上实现更快的页面加载。然后 PNG 可能适用于防止 JPEG 伪影。

要为打印提供更高的分辨率,可以使用 CSS 媒体设置。

于 2015-01-01T14:20:33.367 回答
0

检查缩略图。它非常擅长从较大的图像制作较小的图像。

此外,您应该考虑何时制作这些较小的图像。在每次通话时,在第一次通话时(任何保留缓存​​),...

于 2015-01-01T14:32:35.090 回答