摘要:
这次,我向苹果妥协了,但是一定要记住,webp
才是web
端最好的图片格式!!!
背景:
无意间发现微信公众号调用的图片具有图片小而保真度高的特点,如下图:
点开一看,格式挺新鲜的:
过程:
随后,便尝试在OSS
中配置图片格式为webp
,图片体积果然显著减小而分辨率保持不变,质量变化微乎其微,对比如下。
原图:
jpg
压缩:
webp
格式:
简直是极品!!
这么好的格式,谁能不好奇呢?知乎一下!
看到若干条好评之后,眼前闪过这么一条:
吓得我赶紧拿出小iPhone
试一波,发现Safari浏览器
还真的无法显示webp
格式的图片,更可气的是:除了safari
,手机上的各种支持网站浏览的工具统统不能显示图片(包括QQ
、微信、云笔记、甚至是chrome
)!
让朋友帮忙试了Mac
版的Safari
,同样无法显示:
至于Mac
版的Chrome
,可以显示,然鹅又有啥用呢??
挣扎:
怎么办呢?百度、Google
、雅虎、Bing
....
搜索引擎引了一下午,除了各种火星文般的app
开发代码貌似也没有别的有效信息!
直到阅读又拍云的开发文档才知道,这些都是要靠文件存储服务器来实现支持(翻遍了阿里云OSS
开发文档未果。。)
确实考虑了是否要限制iOS
用户访问,说明:请不要使用iOS
设备访问本站。可转念一想,自己就是iOS
重度用户,另外通过限制的强制性手段总还是有剜肉医疮的嫌疑。
算了,姑且换回jpg
格式了。只是内心深处超级不解:为啥像谷歌webp
这样的技术不会受到苹果的支持呢?技术领域为啥要搞这些的围墙花园呢?
思考:
思路一:是否可以通过js
判断ua
,然后据此指定图片后缀呢?貌似不太行,毕竟静态网页的图片地址都是固定的。那PHP
能否实现呢?算了⑧!鉴于目前的PHP
水平,实现这个比登天还难!
思路二:能否把图片缓存到服务器上,然后转换链接返回呢?可怜腾讯云的1M
小水管了,算了⑧,再说了,目前的实力也不允许这个功能的实现呀!那么云加速cdn
能实现么?貌似也不太行的(不过有个名字叫做“边缘计算”的付费功能不知道可不可以实现)。
总结:
文中有很多个问号,即有很多条疑问,希望未来某一天这些问号能够变成句号或者叹号吧!
5.11更新:
昨天无意之间看到了某大佬的一篇文章www.maplefeng.com/aliyun-cdn-webp/,决定试试看。果然,在CDN
端加上借助正则表达式的边缘计算js
代码即可完美解决该问题!
m1 = and($http_accept, match_re($http_accept, '.*image\/webp.*'))
m2 = match_re($uri, '.+(.JPEG|.jpeg|.JPG|.jpg|.PNG|.png)$')
if and(m1, m2) {
rewrite(concat($uri, '-soarli_webp'), 'enhance_redirect', 301)
}
感慨:正义可能会迟到,但绝不会缺席!
顺便贴上当前阿里CDN
的价格,方便日后对比。
链接:www.aliyun.com/price/product?spm=5176.11785003.overview.22.2610142fsA72J1#/cdn/detail
参考资料:
https://www.zhihu.com/question/27201061
https://blog.upyun.com/?p=1252
https://help.upyun.com/knowledge-base/image/#webp-e5bc80e58f91e4b893e9a298
https://blog.csdn.net/wsyx768/article/details/78986918
https://blog.csdn.net/mynewdays/article/details/104494395
https://blog.csdn.net/jia12216/article/details/82783524
https://yq.aliyun.com/search?q=webp+ios&type=ARTICLE
https://blog.upyun.com/?p=1539
https://www.maplefeng.com/aliyun-cdn-webp/
版权属于:soarli
本文链接:https://blog.soarli.top/archives/385.html
转载时须注明出处及本声明。