PHP将dataurl转成图片image

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

 
图片dataurl 如下

$imgstr 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';

方法一:

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

 

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;
 
方法二:
如果仅仅是想保存图片到本地,可以用substr 和 strpos 方法
 
$imgdata substr($imgstr,strpos($imgstr,",") + 1);
$decodedData base64_decode($imgdata);
file_put_contents('11.png',$decodedData );
posted @ 2016-10-14 09:05  优柔寡断  阅读(1203)  评论(0编辑  收藏  举报