可以使用data-uri作为参数调用imagecreatefromjpeg()吗?

时间:2016-05-18 05:27:52

标签: php image-processing gd

我使用data-uri data:image/jpeg;base64,BASE64_HERE来传递图像。我可以传递此值imagecreatefromjpeg()以保存为图像文件。

这个功能如何运作?

1 个答案:

答案 0 :(得分:2)

imagecreatefromjpeg()函数从文件创建图像variable,但不向后。在base64中有图像源时,可以使用简单的file_put_contents()函数来保存文件。例如:

$data = 'data:image/jpeg;base64,BASE64_HERE';

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

file_put_contents('/tmp/image.jpg', $data);

您还可以使用imagecreatefromjpeg(),然后使用imagejpeg()方法,如果它更适合您。但最好的方法是使用imagecreatefromstring(),因为它会自动检测图像是jpggifpng等等。例如:

$data = 'data:image/jpeg;base64,BASE64_HERE';
$image = imagecreatefromstring(base64_decode($data));
imagejpeg($image, 'image.jpg');