【问题标题】:PHP7 - optimize images ( Compress without losing quality )PHP7 - 优化图像(压缩而不损失质量)
【发布时间】:2019-10-06 07:26:06
【问题描述】:

我的项目有问题。我想优化它的图像。我尝试将图像转换为 .webp,但我发现它不受浏览器支持。

当我在 Google 的 PageSpeedInsight 上测试我的网站时,它给了我关于图像的警告,我需要压缩它们。同时,他还给了我新的压缩图片,完美且小巧。

但我尝试用 PHP 来做,但我无法获得与 google page Insight 相同的结果。

来自 pageSpeedInsight 的消息:

JPEG 2000、JPEG XR 和 WebP 等图像格式通常提供更好的 压缩比 PNG 或 JPEG,这意味着更快的下载和更少 数据消耗

有没有优化图像的最佳解决方案?我使用原生 PHP 框架 (MVC)。

【问题讨论】:

  • 将它们转换为 jpg。
  • @bassxzero,我试过了,但还是有问题,我在网站上的所有图片都是 jpg,我总是收到这个警报

标签: php image compression


【解决方案1】:

您可以安装Intervention Image库,将您的图像转换为WEBP格式。

并在服务器支持时使用 .htaccess 显示 webp 图片,因为并非所有浏览器都支持 WEBP 图片。在这种情况下,您必须拥有其他常用扩展名(jpg,png)的图像副本,并且可以使用tinypng API.进行压缩

<IfModule mod_setenvif.c>
    # Vary: Accept for all the requests to jpeg and png
    SetEnvIf Request_URI "\.(jpe?g|png)$" REQUEST_image
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Check if browser supports WebP images
    RewriteCond %{HTTP_ACCEPT} image/webp

    # Check if WebP replacement image exists
    RewriteCond %{DOCUMENT_ROOT}/$1.webp -f

    # Serve WebP image instead
    RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp]
</IfModule>

<IfModule mod_headers.c>
    Header append Vary Accept env=REQUEST_image
</IfModule>

<IfModule mod_mime.c>
    AddType image/webp .webp
</IfModule>

【讨论】:

  • not all browsers support WEBP images - 很不幸。我已经等了很长时间了。 WEBP 就像 JPG 和 PNG 的混合体。使用更好的压缩并具有透明度。也许它会在 2020 年底准备就绪,哈哈……希望吧。然后我们可以摆脱所有这些遗留格式。如果我记得它还支持动画帧。
  • @ArtisticPhoenix 是的。挺不方便的,不过我相信只有 Chrome 支持 WEBP。
  • 是的,它是 Googles V8 的一部分。它也不是没有问题(我读过一些东西,质量与压缩率在某些情况下可能比 JPG 更差)。但在某些时候,他们需要放弃所有这些旧格式。
猜你喜欢
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2015-02-24
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多