如果需要多种尺寸,应该如何存储图像?

时间:2010-05-31 00:45:18

标签: php image image-processing image-manipulation

存储图片的最佳方式是什么?目前,当上传图像时,我将其调整为3种不同的尺寸(缩略图,正常尺寸和大尺寸)。我在数据库中保存图像的描述,格式,并使用数据库中的id号作为图像名称。每个尺寸的图像都有自己的目录。

我应该将图像存储在数据库中吗?我应该只存储更大的尺寸并根据需要生成缩略图吗?或者你有任何其他想法?

3 个答案:

答案 0 :(得分:2)

你所描述的对我来说听起来很合理。您可以将图像存储在数据库中,但是您不会注意到任何重大的性能提升,如果您的webhost限制了MySQL数据库的大小,您可能会发现您的数据库空间过多。

对于调整图像大小,一次执行并存储三个副本的计算成本低于每个请求生成一次较小图像的计算量。但是,您可能需要考虑让浏览器为您生成缩略图生成(只需指定一个img标记,其中src设置为完整大小的图像加上宽度/高度属性),这样可以节省CPU功耗和磁盘空间拥有不那么漂亮的缩略图的昂贵(浏览器通常以昂贵的质量来缩放图像以获得速度)。

答案 1 :(得分:2)

您可以选择两个世界的混合,在SQL(或HDD)上保存大图像。 您可以在请求时动态生成缩略图,但随后将它们缓存在服务器上一段时间。

这意味着您可以随时在磁盘上获得最新/经常使用的大图像和缩略图。

答案 2 :(得分:0)

如果您有一个以drupal为主的网站,则此功能内置于http://drupal.org/project/imagecache