PHP:如何将图像从URL转换为Base64?
我想将图像从其网址转换为base64。
是否要创建数据 URL?你需要一个MIME类型和其他一些额外的信息(参见维基百科)。如果不是这种情况,这将是图像的简单 base64 表示形式:
$b64image = base64_encode(file_get_contents('path/to/image.png'));
我找到了这个问题,寻找类似的解决方案,实际上,我明白这是最初的问题。
我想做同样的事情,但文件在远程服务器中,所以我就是这样做的:
$url = 'http://yoursite.com/image.jpg';
$image = file_get_contents($url);
if ($image !== false){
return 'data:image/jpg;base64,'.base64_encode($image);
}
因此,此代码来自返回字符串的函数,您可以在 html 中 img 标记的 src 参数内输出返回值。我正在使用smarty作为我的模板库。它可以是这样的:
<img src="<string_returned_by_function>">
请注意对以下内容的显式调用:
if ($image !== false)
这是必需的,因为在某些情况下,file_get_contents可以返回 0 并被强制转换为 false,即使文件读取成功也是如此。实际上,在这种情况下,它不应该发生,但是在获取文件内容时这是一种很好的做法。