在 Carrierwave 中,如何针对 Google PageSpeed 压缩图像

In Carrierwave, how to compress images for Google PageSpeed

当我使用 Google PageSpeed 时,我被告知需要压缩图像。示例:

Compressing https://xxx.s3.amazonaws.com/xxxx.jpg could save 33.2KiB (66% reduction).

我不知道如何让 Google 在这里开心。在 Carrierwave 中,我有以下设置:

version :thumb do
  process resize_to_fill: [340, 260]
  process :quality => 86
end

如果我将处理质量移动到 86 以外的任何值,图像看起来就不太好。是否还有其他一些 setting/trick 我想以一种能让 Google PageSpeed 满意并帮助我的网站快速加载的方式来压缩图像?

我没试过resize_to_limit helper,可能对你有帮助:

process :resize_to_limit => [340, 260]

It will resize the image to fit within the specified dimensions while retaining the original aspect ratio. Will only resize the image if it is larger than the specified dimensions.

您可以通过多种方式进行图像优化。桌面和在线。对于桌面,我建议使用 JPEGOPTIM 实用程序来优化 jpeg 文件。

Provides lossless optimization (based on optimizing the Huffman tables) and "lossy" optimization based on setting maximum quality factor.

如果您使用 Linux,请从您的终端安装它:

sudo apt-get install jpegoptim

然后转到您的图像所在的文件夹并检查它的第一个大小:

du -sh photo.jpg

之后 运行 下面的命令对其进行优化:

jpegoptim photo.jpg

您将看到输出。

You can also compress the given image to a specific size to, but it disables the lossless optimization.

您还可以使用此命令批量优化图像:

jpegoptim *.JPG

另一种桌面方式是使用 PS 或 GIMP 手动进行基本优化。包括裁剪不必要的 space、将颜色深度降低到可接受的最低水平、删除图像注释和(保存为网络 选项)

您也可以使用在线解决方案。有很多,我建议这些例如:

https://tinypng.com

https://kraken.io

还有一种 WebP 格式(developed by Google ) Chrome & Opera support it, but Firefox is not supporting it, so basicly images need to be served conditionally based on the HTTP Accept header sent by browsers capable to display this format. Check this Blog 如果您选择 WebP 格式,则可以使用 gem。( Rails 4 )

希望对你有所帮助,