我使用data-uri data:image/jpeg;base64,BASE64_HERE
來傳遞圖像。我可以通過這個值imagecreatefromjpeg()
保存爲圖像文件。可以使用data-uri作爲參數調用imagecreatefromjpeg()?
此功能如何工作?
我使用data-uri data:image/jpeg;base64,BASE64_HERE
來傳遞圖像。我可以通過這個值imagecreatefromjpeg()
保存爲圖像文件。可以使用data-uri作爲參數調用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');
k好......但是當我使用'$ data ='data:image/png; base64,BASE64_HERE'; imagecreatefrompng($ data);'然後它的工作正常。這些功能的工作有什麼區別嗎?或者你能解釋這些功能是如何工作的嗎?並且感謝您的快速回復 –
當您使用'$ im = imagecreatefrompng()'時,您仍然需要使用其他函數(如imagepng($ im,'image.png');'或者如果您想要顯示它'header('Content-Type:image/png'); imagepng($ im); imagedestroy($ im); '。 – Gvidas
區別在於'imagecreatefrompng()'和'imagecreatefromjpeg()'只將圖像保存在*圖像變量中*並不保存到文件中。 – Gvidas
您共享可能沒有試過相關的代碼片段。 – Daenarys