如何从base64编码的jpeg创建GD图像​​?

时间:2010-12-31 20:11:31

标签: php image gd base64 jpeg

我有一个上传Api作为响应对象(以及Json对象中的其他内容)传递base64编码的jpeg图像。

我按原样创建编码图像:

$im; // gd image resource
ob_start();
imagejpeg($im);
$data = base64_encode(ob_get_clean());

然后使用javascript将数据放入表单字段并提交。

如何再次创建GD资源,以便我实际上可以将该图像保存为文件?

PHP中的所有内容。

3 个答案:

答案 0 :(得分:31)

您可以使用imagecreatefromstring()功能:

$data = base64_decode($_POST['image_as_base64']);

$formImage = imagecreatefromstring($data);

“String”并不意味着“真正的”字符串。在这种情况下,它意味着字节/ blob数据。

答案 1 :(得分:14)

  

如何再次创建GD资源,以便我实际上可以将该图像保存为文件?

你确定你需要做那个额外的步骤吗?怎么样:

file_put_contents('MyFile.jpg', base64_decode($_POST['MyFormField']));

答案 2 :(得分:0)

我是这样做的:

// input is in format: data:image/png;base64,...
$str="data:image/png;base64,"; 
$data=str_replace($str,"",$_POST['image']); 
$data = base64_decode($data);
file_put_contents('tmp/'.mktime().'.png', $data);