soarli

这次,我向苹果妥协了
摘要:这次,我向苹果妥协了,但是一定要记住,webp才是web端最好的图片格式!!!背景:无意间发现微信公众号调用...
扫描右侧二维码阅读全文
23
2020/04

这次,我向苹果妥协了

摘要:

这次,我向苹果妥协了,但是一定要记住,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://www.upyun.com/webp

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/

最后修改:2020 年 05 月 11 日 09 : 16 PM

发表评论