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 );
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!