保存/显示图像的最佳方法是什么? (不是blob vs. txt)

时间:2011-12-27 19:08:24

标签: image-processing thumbnails image-resizing image-uploading

我正在现场制作一个画廊。并且不知道它是什么最好的解决方案。需要建议。

我认为有两种操作方式。

  1. 用户上传图片。我只在服务器上保存一次,只保留原始大小。然后,当需要在屏幕上显示该图像时,我将其调整到必要的大小,例如作为化身。因此,我只存储一张原始大小的图像,并在显示之前将其调整为任意大小。

  2. 用户上传图片。我将它保存在原始大小的服务器上,并制作和保存多个副本(缩略图大小),例如,avatar-sized,erc。因此,如果显示图像,则每次显示图像时都不会调整大小,只需进行适当大小的复制。

  3. 我认为第二种方式更好。因为每次调整图像时都不需要花费服务器强度。但是如果我决定更改我的网站的设计并且其上的某些图像尺寸也会调整大小呢?我会得到在服务器上有很多不适合新设计的图像的情况。

    在不同的论坛周围,他们解释了如何制作画廊,并且每当他们说缩略图大小的副本也被制作和保存时。但看起来如果设计在时间上发生变化就没有意义了。请指教。语言 - PHP。

1 个答案:

答案 0 :(得分:1)

其他人提出的一个解决方案是两者之间的混合。因此,用户上传照片并将其以原始形式保存在服务器上。然后,当需要化身时,你检查你是否在磁盘上保存了头像(也许是user12345_50x50.jpg - 其中50x50是widthxheight)。如果确实存在,请显示该图像。如果没有,则使用服务器调整大小/裁剪任何内容,然后将该图像保存到磁盘并将其提供给用户。这将允许您请求任何大小的文件并根据需要提供 - 利用缓存已经请求的那些[请注意,这是服务器端缓存,因此适用于所有用户。

你可以充分利用这两个世界。您无需根据需要预先处理所有图像处理。第一次处理图像时,该用户必须等待,但任何其他请求都将获得处理过的文件。

在PHP中使用此解决方案的一个实现是phpthumb:http://phpthumb.sourceforge.net/