2

我有一个将图像存储在 MySQL BLOB 字段中的数据库。我设置了一个脚本,该脚本根据 URL 中的 ID 选择和显示图像,并且我也这样做了,因此如果您附加 ?resize=800x600,它将调整图像大小(在本例中为 800x600)。

我使用的主机没有安装 Imagemagick 也不让我自己做,所以我需要使用 PHP 的 GD 库来调整图像大小。
但是我还没有找到像 Imagick's 这样的函数readImageBlob(),所以我无法编辑从数据库中获取的二进制字符串,除非先创建一个临时文件,对其进行编辑,从中获取二进制字符串,然后将其发送到浏览器,然后删除它(这是太多的步骤,特别是因为它在投入生产时会获得几千次点击)。

所以我的问题是,有没有办法在readImageBlob不通过临时文件解决方案的情况下使用 PHP 的 GD 进行复制?

4

1 回答 1

5

imagecreatefromstring()应该可以解决问题。我认为手册中的函数示例几乎正是您所需要的:

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}

$data数据库中的二进制数据字符串在哪里。

于 2009-08-18T18:21:57.297 回答