PHP7-优化图像(压缩而不丢失质量)

PHP7-优化图像(压缩而不丢失质量),php,image,compression,Php,Image,Compression,我的项目有问题。我想优化它的图像。我试图将图像转换为.webp,但发现浏览器不支持它 当我在谷歌的PageSpeedInsight上测试我的网站时,它给了我关于图像的警告,我需要压缩它们。同时,他给了我一张新的压缩图片,完美而小巧 但是我试着用PHP来实现这一点,但是我无法获得与google page Insight相同的结果 来自pageSpeedInsight的消息: JPEG 2000、JPEG XR和WebP等图像格式通常提供更好的性能 压缩比PNG或JPEG,这意味着下载速度更快,数量

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

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

但是我试着用PHP来实现这一点,但是我无法获得与google page Insight相同的结果

来自pageSpeedInsight的消息:

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

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

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

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


#更改:接受对jpeg和png的所有请求
SetEnvIf请求URI“\(jpe?g | png)$”请求图像
重新启动发动机
#检查浏览器是否支持WebP图像
重写cond%{HTTP_ACCEPT}image/webp
#检查是否存在WebP替换映像
重写cond%{DOCUMENT_ROOT}/$1.webp-f
#改为提供WebP图像
重写规则(+.+)\(jpe?g|png)$$1.webp[T=image/webp]
页眉附加VARIE Accept env=请求\图像
AddType image/webp.webp
您可以安装库,将图像转换为WEBP格式

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


#更改:接受对jpeg和png的所有请求
SetEnvIf请求URI“\(jpe?g | png)$”请求图像
重新启动发动机
#检查浏览器是否支持WebP图像
重写cond%{HTTP_ACCEPT}image/webp
#检查是否存在WebP替换映像
重写cond%{DOCUMENT_ROOT}/$1.webp-f
#改为提供WebP图像
重写规则(+.+)\(jpe?g|png)$$1.webp[T=image/webp]
页眉附加VARIE Accept env=请求\图像
AddType image/webp.webp

将它们转换为jpg。@bassxzero,我尝试过,但仍然存在问题,我在网站上的所有图片都是jpg,并且我总是收到此警报将它们转换为jpg。@bassxzero,我尝试过,但仍然存在问题,我在网站上的所有图片都是jpg,并且总是收到此警报
并非所有浏览器都支持WEBP图像
-这是不幸的。我已经等了很久了。WEBP就像是JPG和PNG的混合体。使用更好的压缩和透明度。也许它会在2020年底准备好,哈哈。。。希望如此。然后我们就可以摆脱所有这些遗留格式。如果我记得的话,它还支持动画帧。@ArtisticPhoenix是的。很不方便,但我相信只有Chrome支持WEBP。是的,它是谷歌V8引擎的一部分。它也不是没有它的问题(我读了一些东西,质量和压缩率在某些情况下可能比JPG更差)。但在某些时候,他们需要抛弃所有这些旧格式。
并非所有浏览器都支持WEBP图像
——这是不幸的。我已经等了很久了。WEBP就像是JPG和PNG的混合体。使用更好的压缩和透明度。也许它会在2020年底准备好,哈哈。。。希望如此。然后我们就可以摆脱所有这些遗留格式。如果我记得的话,它还支持动画帧。@ArtisticPhoenix是的。很不方便,但我相信只有Chrome支持WEBP。是的,它是谷歌V8引擎的一部分。它也不是没有它的问题(我读了一些东西,质量和压缩率在某些情况下可能比JPG更差)。但在某种程度上,他们需要抛弃所有这些旧格式。
<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>