如何从包含分成4个元素的blob数据的数组中创建一个图像,最好是.png?

时间:2016-12-01 07:19:58

标签: php image file-encodings

<?php 
   $arr = ['data:image/jpeg;base64,/9j/4AAQSkZJR....',
   '....','....','..pPKf56CT/9k=',
   ];

   $arrSize=sizeof($arr);

   for ($i=0;$i<$arrSize;$i++){
      echo $i;
      $data = base64_decode($arr[$i]);
      //echo "  ".$data."</br>";
      file_put_contents('image.png', $data,FILE_APPEND | LOCK_EX);
   }
?>

我无法打开创建的图像,并且创建的文件大小接近1mb。我创建了一个txt文件,可以使用解码后的数据打开。

1 个答案:

答案 0 :(得分:0)

请注意,数组中的第一项需要进行一些清理(删除所有&#39; date:images ...&#39;)。另外,最好是“粘合”。解码前的编码字符串。这里有代码可以解决这个问题:

$filename='image.png';
$arrSize=count($arr);
$data=substr($arr[0],strpos($arr[0],',')+1);
for($i=1;$i<$arrSize;$i++) $data.=$arr[$i];
file_put_contents($filename,base64_decode($data));