如何从PHP中的图像变量中加载blob

问题描述:

我有一个应用程序,它通过将fopen($fileServerTempName, 'br')传递到PDO参数出价中来将图像加载到MySQL blob中。这很好。但是,我收到了一个新的要求,用于编辑内存中的照片,同时使用imagecreatefrompng函数来初始化图像对象。现在我不知道如何从生成的图像对象中获取数据流以将修改的图像加载回MySQL。我如何从这样的数据流:如何从PHP中的图像变量中加载blob

$sourceImage = imagecreatefrompng($fileServerTempName); 
// do some modifications to $sourceImage 

是,该fopen会产生相同的格式?我已经尝试将变量转换为二进制,编码和解码,但没有运气。任何帮助,将不胜感激。如果可能,我想避免在磁盘上创建实际修改映像的临时副本。

谢谢。

+1

为什么要将图像本身存储在MySQL中?除非您对这些blob进行某种二进制搜索,否则您可能会更好地将文件存储在磁盘上,并将其路径引用存储在数据库中。 – 2014-10-07 19:21:25

+0

@MikeBrant我不能同意你的看法,除非我无权在此作出决定。我猜这背后有原因,我只是不知道他们。 – 2014-10-07 19:26:10

ob_start(); 
    imagesavealpha($sourceImage, true); // enable transparency 
    imagepng ($sourceImage); 
    $image_data = ob_get_contents(); 
ob_end_clean(); 

您现在可以将图像保存回MySQL。

+0

这工作完美无瑕。如果这最终成为最佳选择,我会再测试一些并标记为已接受。谢谢。 – 2014-10-07 19:43:52

+0

对于将您标记为正确答案的延误感到抱歉:P – 2015-05-21 19:31:39