Как мне создать изображение, предпочтительно .png, из массива, содержащего данные BLOB-объектов, разделенные на 4 элемента?

<?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);
}
?>

Я не могу открыть созданное изображение, а размер создаваемого файла составляет почти 1 МБ. Я создал текстовый файл, который прекрасно открывается с декодированными данными.

0

Решение

обратите внимание, что первый элемент в массиве нуждается в некоторой очистке (удалив все эти «date: images …»). Кроме того, лучше всего «склеить» закодированную строку перед ее декодированием. вот код, который сделает свое дело:

$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));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]