在MySQL数据库Blob列中打开,旋转和存储Tiff图像

时间:2009-06-23 14:42:23

标签: php mysql tiff

我的问题很简单:

  1. 从MySQL数据库中检索图像(当前存储为blob列中的二进制数据)
  2. 将该图像旋转90度(使用PHP的imagerotate)
  3. 将图像存储回数据库,并应用了旋转更改。
  4. 我无法找到能够将图像保存为数据流(而不是文件系统)的函数,因为这些图像不允许触及Web服务器(因此,它们在数据库中的原因)。欢迎任何建议。

    由于

2 个答案:

答案 0 :(得分:0)

您是否在旋转前将图像转换为其他类型?你说你正在使用tiff,GD只能读headers of tiff images,你需要先转换它。可能与ImageMagick

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

  • 查询文件数据库
  • 保存到临时目录(如果需要,可以通过设置权限来保护文件)
  • 旋转图像
  • 插回数据库
  • 删除临时文件

答案 1 :(得分:0)

从数据库中选择数据。将数据传递到imagecreatefromstring()

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

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

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

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

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