题
我有一个数据库,将图像存储在 MySQL BLOB 字段中。我设置了一个脚本,根据 URL 中的 ID 选择并显示图像,并且如果您附加 ?resize=800x600,它也会调整图像大小(在本例中为 800x600)。
我使用的主机没有安装Imagemagick,不让我自己做,所以我需要使用PHP的GD库来调整图像大小。
但我还没有找到像Imagick这样的功能 readImageBlob()
, ,所以如果不先创建一个临时文件,编辑它,从中获取二进制字符串,将其发送到浏览器,然后删除它,我就无法编辑从数据库获取的二进制字符串(这实在是太多步骤了,特别是因为当它投入生产时将会获得几千次点击)。
所以我的问题是,有什么办法可以复制 readImageBlob
使用PHP的GD而不通过临时文件解决方案?
解决方案
图像从字符串创建() 应该可以解决问题。我认为手册中的功能示例几乎正是您所需要的:
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
在哪里 $data
是来自数据库的二进制数据字符串。
不隶属于 StackOverflow