我有一个页面,它从快照工具生成图像数据URL,并通过PHP将结果字符串插入MySQL数据库。后来我有一个页面,它采用并使用这些图像。这很好,除了我需要将生成的html保存到我的服务器进行一些后期处理,图像数据网址的长度让我很头疼并使html文件超过8到10 MB,这会减慢整个过程。图像看起来像这样:
<img src="data:image/png:base64,iVBORw0K43+gAA4u...">
如果有一个非常长的字符串使得生成的html非常大。有没有办法在我的服务器上托管这个作为png,所以链接是一个看起来很正常的图像?像这样:
<img src="http://www.mysite.com/image1.png">
答案 0 :(得分:2)
如何将base64转换为原始图像,您要做的是将图像作为实际文件保存到服务器。
Php将base64数据转换为图片
function toImage($base_code){
$img_file = imagecreatefromstring(base64_decode($base_code));
imagejpeg($img_file, 'new.jpg');
}
调用函数
echo toImage($encoded_image);
确保仅传递base64编码的字符串而不使用图像标记
答案 1 :(得分:0)
您可以将文件保存在其他位置,但我的猜测是您要求数据库中存在图像。如果将文件保存在其他位置,则只需将磁盘需求加倍。
在任何情况下,对此的一般修复方法是将该图像字符串保存到磁盘,并在数据库中跟踪路径。然后,当您生成HTML时,您将使用数据库中的路径,而不是数据库中的二进制数据。