WithCoderWithCoderWithCoder

PHP将canvas的dataurl转成图片image

    使用 canvas 生成的图片,比如百度Echarts的图表,可以生成dataurl并传递到后台。不过php无法直接通过file_put_contents方法将dataurl直接保存为本地电脑图片,需要做一下转码。本文介绍如何提取canvas的dataurl并进行保存下载。

    示例图片为百度Echarts的dataurl,内容格式如下:

$imgstr = 'data:image/png;base64,iVBORw0K .............................. ASUVORK5CYII=';

    一、通过正则表达式提取图片内容

if (!preg_match('/data:([^;]*);base64,(.*)/', $imgstr, $matches)) {
    die("error");
}

$content = base64_decode($matches[2]);

// 保存图片
file_put_contents('chart.png', $content);

    二、通过截取dataurl字符串内容提取图片内容

    可以用substr 和 strpos 方法,截取dataurl中的图片内容,然后保存

// 截取图片内容
$imgdata = substr($imgstr, strpos($imgstr, ",") + 1);
$content = base64_decode($imgdata);

// 保存图片
file_put_contents('chart.png', $content);

    以上2种方式,都可以实现dataurl图片保存。

欢迎分享交流,转载请注明出处:WithCoder » PHP将canvas的dataurl转成图片image