我的项目有问题。我想优化图像。我尝试将图像转换为.webp,但发现浏览器不支持该图像。
当我在Google的PageSpeedInsight上测试我的网站时,它会警告我有关图像的信息,我需要对其进行压缩。同时,他为我提供了新的压缩图片,而且尺寸非常小。
但是我尝试使用PHP来做到这一点,但是我无法获得与Google Page Insight相同的结果。
pageSpeedInsight的消息:
JPEG 2000,JPEG XR和WebP等图像格式通常可以提供更好的 比PNG或JPEG压缩,这意味着下载速度更快且更少 数据消耗
是否有最佳的解决方案来优化图像?我使用本机PHP框架(MVC)。
答案 0 :(得分:0)
您可以安装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>