2011-11-18 94 views
2

我最近开始尝试增加我的网站性能。我遇到的最大障碍之一是显示缩略图的数量。PHP图像缩略图性能?

我目前使用全尺寸图像,并通过在img标签中定义高度/宽度值来缩放图像。这似乎不是很有效,所以我的问题是什么推荐的方式来显示缩略图?我是否应该在数据库中维护缩略图的第二个表格,还是有更好的解决方案?

+5

以缩略图的separete文件,调整进入的尺寸播放。 – MatejB

+3

试图找到我喜欢这样的事情的链接。这是一个从图像创建缩略图的功能,然后我为图像做的是检查是否存在“image-name-thumb”,如果不存在,那么我会调用该函数并创建它,然后显示拇指。这样,拇指只能创建一次。另外,如果你将拇指放在自己的目录中,可能会更容易。 – martincarlin87

+1

使用img标签的宽度和高度属性不会创建缩略图。浏览器仍然需要下载完整大小的图像,然后调整大小。 – CodeCaster

回答

3

处理图像需要其(cpu)收费,您应该尽可能避免它。

我的建议: 在将图像上传到单独的图像文件时创建缩略图,这样您可以确定何时创建/调整它们的大小 - 而不是在运行时。

如果您希望将链接指向单独数据库字段中的缩略图或从原始名称中获取缩略图,完全取决于您 - 两种方式均可行。

这使得更多的性能增强器也更容易实现(p.e. caching)。

我已经在基于php的项目中实现了一个类似的过程,它是一个扩展的好方法。在我的情况下,我通过cron每晚创建缩略图,因为那个时候系统负载很低。

3

如果使用上传器获取网站上的图片,请让PHP调整原始图片的大小,并上传名称中带有某种前缀的原始图片和较小的图片。 通过这种方式,您可以轻松地从数据库获取图像,只需使用“filename.jpg”作为正常图像,使用“thumb_filename.jpg”作为拇指。 当然,没有上传者也可以完成,但您必须手动创建/上传缩略图。

1

例如,在图像中创建单独的文件夹称为thumnails(图像/缩略图)添加那些以文件大小为前缀的文件,例如:“original_file_name_200X200.jpg”,将数据库“original_file_name”和扩展名“jpg”存储到单独字段(名称,分机),然后当你需要显示它时,选择名称添加大小前缀,并添加扩展名为/images/thumbnails/file_200X200.jpg这样你可以添加更多的尺寸,保留原有的原始状态。

0

您正在寻找的东西像什么可以在这里找到:http://dtbaker.com.au/random-bits/php-simple-image-resize-thumbnail-generator.html(这原来所有的图像转换成JPEG文件)

像@ martincarlin87规定 - 只需要添加一个检查,看它是否在缩略图目录存在要么发送信息要么创建并发送。这也可以变成一个功能。

+0

这可以扩展为包括使用与原件相同的扩展名保存缩略图。我使用了一个类似的网站,我曾经工作过。 –

0

我使用phpTumb来即时创建缩略图。 您也可以在上载图片时使用它来更改其尺寸。 它有许多其他功能。一探究竟。

0

你可以使用像imagemagick这样的程序来制作正确的缩略图。

如果您的个人网站可以批量调整大小(这是一个powertool for xp),然后上传到200目录并更改您的代码。显然这依赖于你上传图片。

imagemagick将需要在服务器上安装,但将调整,并允许您与图像