Php:将blob转换为图像文件

jos*_*osh 11 php mysql blob image

这可能用php和mysql数据库将blob转换为图像文件吗?

小智 8

您可以使用几种不同的方法,具体取决于您安装的php图像库.这是一些例子.

注意,echo <img>只是我用来在循环MySQL结果资源时显示来自同一个php脚本的多个图像的技巧.您也可以通过header()输出,如@NAVEED所示.

GD:

$image = imagecreatefromstring($blob); 

ob_start(); //You could also just output the $image via header() and bypass this buffer capture.
imagejpeg($image, null, 80);
$data = ob_get_contents();
ob_end_clean();
echo '<img src="data:image/jpg;base64,' .  base64_encode($data)  . '" />';
Run Code Online (Sandbox Code Playgroud)

ImageMagick(iMagick):

$image = new Imagick();
$image->readimageblob($blob);
echo '<img src="data:image/png;base64,' .  base64_encode($image->getimageblob())  . '" />';
Run Code Online (Sandbox Code Playgroud)

GraphicsMagick(gMagick):

$image = new Gmagick();
$image->readimageblob($blob);
echo '<img src="data:image/png;base64,' .  base64_encode($image->getimageblob())  . '" />';
Run Code Online (Sandbox Code Playgroud)


Hyp*_*eus 5

如果BLOB包含图像的二进制数据(以可识别的格式,例如tiff,png,jpeg等),则获取BLOB的内容,将其写入文件,然后vo ...你得到了一个图像.

在某些奇怪的操作系统上,您必须为输出文件提供相应的扩展名,以便可以识别图像文件.