我在博客说发现一篇有意思的文章:「开启AVIF图片格式,助力typecho图片加载速度更快一步」,快点击阅读原文看看吧!
今日,在张洪大佬[《实现全站图片使用avif格式,替代臃肿的webp教程》][1]一文中学习并认识到了AVIF这个图片格式。这个格式相较于传统的jpg、png甚至webp等都具有很大的优势,唯一小遗憾就是有些许浏览器或者手机端不支持。但,无所畏惧。喜欢折腾和动手的我,准备开启博客的avif之旅。 什么是AVIF? AVIF是一种基于AV1视频编码的新图像格式,相对于JPEG、WebP等图片格式压缩率更高,并且画面细节更好。 AVIF通过使用更现代的压缩算法,在相同质量的前提下,AVIF文件大小是JPEG文件的35%左右。 AVIF支持高动态范围(HDR)和标准动态范围 (SDR)内容,包括常用的sRGB和BT.2020色彩空间。它支持8、10和12位的颜色深度、胶片颗粒保留、PNG图像的透明度以及GIF格式的动画。 实际情况就是,更小的图片,更快的加载速度,且画质还不怎么受影响。实际请看下图。同样一张图片,avif和webp相差的大小和加载速度不同,所以avif还是有点香的。 当然,avif的缺点就是并不兼容有些浏览器,比如Edge Nginx添加规则 在你的nginx服务器http里面添加如下规则后,重启服务器即可。 types { image/avif avif; } Typecho怎么实现avif Typecho打开网站根目录,进入Var找到Widget,打开Options.php文件,大约673行,差不多最后面,添加AVIF,例 /** * 允许上传的文件类型 * * @return array */ protected function ___allowedAttachmentTypes(): array { $attachmentTypesResult = []; ...