TimThumb是一个简洁高效的创建图片缩略图的程序。它功能非常强大,并且制定性很强。通过对多个参数的控制,你可以灵活地设置缩略图片的输出样式。
然而,有时候具体应用时,会产生一些性能问题。由于它的调用方式
<IMG alt=”" src=”/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1″>
服务器可能不会自动对图片进行压缩,也不会自动添加图片的客户端缓存过期时间。下面我们来看一下如何解决这些问题。
## 开启cache
TimThumb是有cache功能的,如果你的图片没有cached,请查看timthumb.php文件第45行左右
check_cache….
移除前面的#或//符号,这将使服务器响应时间加快5倍(100ms降低到20ms)。
修改cache目录
最好将cache目录设为网站上传目录(upload目录)(有人如此建议)。第35行:
$cache_dir = ‘./cache’;
计算timthumb.php文件所在目录深度,.将cache_dir设为../… /uploads/
## 设置最大压缩比
PNG图片的最后一个参数不是质量级别而是压缩级别。我们可以单独修改这个参数达到最大压缩比。
找到timthumb.php文件第174行左右
$quality = floor($quality 0.09);
在下面添加:
$quality = 9;
## 加快图片的载入速度
你可以把以下规则添加进你的.htaccess文件中,可加速图片载入速度:
RewriteEngine on
RewriteRule . – [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* – [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
## 设置客户端缓存
将第317行左右的最大有效期设为:
header(“Cache-Control: max-age=315360000,public”);
下两行左右位置,设为:
header(“Expires: ” . gmdate(“D, d M Y H:i:s”, time() + 315360000) . “GMT”);
## 设置静态地址
将图片的动态地址改为静态地址也会加快服务器的响应速度。
参考:
http://www.speedingupwebsite.com/2010/02/11/hacking-timthumb-php-all-the-best-practices/
关于timthumb.php更多用法:
http://code.google.com/p/timthumb/