将html图像数据网址转换为托管图像

时间:2012-10-01 17:32:29

标签: php html

我有一个页面,它从快照工具生成图像数据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">

2 个答案:

答案 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时,您将使用数据库中的路径,而不是数据库中的二进制数据。