我的问题很简单:
- 从 MySQL 数据库中检索图像(当前存储为 blob 列中的二进制数据)
- 将该图像旋转 90 度(使用 PHP 的 imagerotate)
- 在应用了旋转更改的情况下将图像存储回数据库中。
我无法找到可以让我将图像保存为数据流(而不是文件系统)的功能,因为这些图像不允许接触 Web 服务器(因此,它们为什么在数据库中)。欢迎任何建议。
谢谢
您是否在旋转之前将图像转换为另一种类型?你说你用的是 tiffs,GD 只能读取tiff 图像的标题,你需要先转换它。可能与ImageMagick
您很可能希望将文件保存到临时目录:
从您的数据库中选择数据。将数据传入imagecreatefromstring()
您现在将拥有一个可以调用 imagerotate 的图像资源。
要将其保存回数据库,您需要使用imagepng()
/imagejpeg()
或您正在使用的图像类型的等效函数将其输出。这些函数输出到浏览器或文件,因此您可以使用输出缓冲来捕获字符串以保存回数据库。
ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();
$img_data
现在可以保存到数据库中。
这只是一个粗略的大纲,但我希望我已经解释了这个想法。