关于webp图片在微信小程序不显示问题,webp格式转成jpg

一:背景

在做一个小程序项目的时候,采集了微信公众号的图片到小程序显示,发现安卓的可以显示,ios显示不了。后来发现是因为图片格式是webp导致

苹果在macOS Sierra及iOS 10的早期beta版本中加入了WebP支持。而在2016年9月7日发布的iOS 10和macOS Sierra GM种子版本中却移除了WebP的支持。

二:解决办法

现在就是需要在采集的时候,把webp格式的图片转为jpg,转换方式有两种。

第一种使用GD,但是GD库需要支持webp,如下图所示

如果不支持webp,就会报错imagecreatefromwebp not found

代码如下:

              if(function_exists('imagecreatefromwebp')) {
                   $im = imagecreatefromwebp($rootFile);
                   imagejpeg($im, $rootFile, 100);
                   imagedestroy($im);
               }

这种方式,比较简单但是占用内存比较大,而且图片转换之后可能会有发黄现象。

第二种 是使用Imagick,这种方式需要安装imagick,并且imageick需要支持webp格式

安装教程:https://www.cnblogs.com/dreamydeng/p/6806956.html

代码:

           if(strpos($imageurl,'tp=webp') !== false) {//如果是webp类型图片,转成jpg格式
                $image = new \Imagick();
                $image->readImage(realpath($rootFile));
                $image->setImageFormat("jpg");
                $image->writeImage();
                $image->clear();
            }

这种方式占用内存下,图片质量高,但是安装imageick的坑比较多,慎重

注意点:1.安装iamgick,软件,dll文件和php这三个的版本要对应好

              2.可能你安装好phpinfo显示了,php --ri imagick也有了,但是还是报错直接无响应。这个时候要注意你的imagick是否支持你使用的图片格式

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值