0

我的问题很简单:

  1. 从 MySQL 数据库中检索图像(当前存储为 blob 列中的二进制数据)
  2. 将该图像旋转 90 度(使用 PHP 的 imagerotate)
  3. 在应用了旋转更改的情况下将图像存储回数据库中。

我无法找到可以让我将图像保存为数据流(而不是文件系统)的功能,因为这些图像不允许接触 Web 服务器(因此,它们为什么在数据库中)。欢迎任何建议。

谢谢

4

2 回答 2

0

您是否在旋转之前将图像转换为另一种类型?你说你用的是 tiffs,GD 只能读取tiff 图像的标题,你需要先转换它。可能与ImageMagick

您很可能希望将文件保存到临时目录:

  • 查询数据库文件
  • 保存到临时目录(如有必要,您可以通过设置权限来保护文件)
  • 旋转图像
  • 插入回数据库
  • 删除临时文件
于 2009-06-23T14:48:19.860 回答
0

从您的数据库中选择数据。将数据传入imagecreatefromstring()

您现在将拥有一个可以调用 imagerotate 的图像资源。

要将其保存回数据库,您需要使用imagepng()/imagejpeg()或您正在使用的图像类型的等效函数将其输出。这些函数输出到浏览器或文件,因此您可以使用输出缓冲来捕获字符串以保存回数据库。

ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();

$img_data现在可以保存到数据库中。

这只是一个粗略的大纲,但我希望我已经解释了这个想法。

于 2009-06-23T15:01:00.753 回答