编程语言您现在的位置是:首页 > 博客日志 > 编程语言

PHP 将dataurl转成图片image方法详解

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-07-27编程语言 2 0关键字: dataurl  

本篇文章为大家展示了使用PHP怎么将dataurl转换成image,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。PHP 将dataurl转成图片image

本篇文章为大家展示了使用PHP怎么将dataurl转换成image,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。9Au无知

PHP 将dataurl转成图片image方法9Au无知

使用canvas 生成的图片,是使用dataurl的,php无法直接通过file_put_contents方法保存到本地电脑,需要做一下转码。9Au无知

 图片dataurl 如下9Au无知

$imgstr = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';9Au无知

方法一:9Au无知

通过正则提取出dataurl存储所需的数据,然后直接展示在页面上9Au无知

if (!preg_match('/data:([^;]*);base64,(.*)/', $imgstr, $matches)) {
  die("error");
}
 
$content = base64_decode($matches[2]);
header('Content-Type: '.$matches[1]);
header('Content-Length: '.strlen($content));
 echo $content;die;

 方法二:
9Au无知

如果仅仅是想保存图片到本地,可以用substr 和 strpos 方法
9Au无知

 $imgdata = substr($imgstr,strpos($imgstr,",") + 1);
$decodedData = base64_decode($imgdata);
file_put_contents('11.png',$decodedData );

其实,也可以在使用canvas 生成图片的时候做截取9Au无知

canvasRef.toDataURL().substr(22)9Au无知

这样就把“data:image/png;base64,”这部分内容截取掉了,提交到服务器就不需要再截取了,9Au无知

在客户端截取,即降低服务器的压力,又节省了带宽。9Au无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.com/blog/lang/2022-07-27/1326.html

很赞哦! () 有话说 ()