可以使用 data-uri 作为参数调用 imagecreatefromjpeg() 吗?
Can call imagecreatefromjpeg() with data-uri as parameter?
我使用数据-uri data:image/jpeg;base64,BASE64_HERE
来传递图像。我可以通过这个值 imagecreatefromjpeg()
来保存为图像文件吗?
这个功能是如何工作的?
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(),因为它会自动检测图像是否为 jpg
、gif
、png
等。例如:
$data = 'data:image/jpeg;base64,BASE64_HERE';
$image = imagecreatefromstring(base64_decode($data));
imagejpeg($image, 'image.jpg');
我使用数据-uri data:image/jpeg;base64,BASE64_HERE
来传递图像。我可以通过这个值 imagecreatefromjpeg()
来保存为图像文件吗?
这个功能是如何工作的?
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(),因为它会自动检测图像是否为 jpg
、gif
、png
等。例如:
$data = 'data:image/jpeg;base64,BASE64_HERE';
$image = imagecreatefromstring(base64_decode($data));
imagejpeg($image, 'image.jpg');