我有一个数据库,将图像存储在 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 是来自数据库的二进制数据字符串。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top