TimThumb应用进阶
任何程序的应用,我们都希望其能发挥最大的效能,以及能够应用的更加灵活有创见性,而不是仅仅墨守成规。
TimThumb在创建缩略图上的高效简洁和功能之强大是毋庸质疑的,但是默认情况下对图片进行裁切是从中央区域进行裁切的。也许这样的裁切效果并不理想,甚至直接裁切掉了图片的主题部分(很显然,并不是所有的图片重心都在中心区域),那么这样的缩略图不但起不到应有的作用,甚至影响到整个页面的美观性!
今天就简单地对TimThumb进行一下改造,用以解决这种弊端,进而有目的性地生成缩略图。
欲实现以上的功能,我们为TimThumb添加一个定义为“cropfrom”的功能,并为其赋予以下值:
1. middle,
2. middleleft,
3. middleright,
4. topleft,
5. topright,
6. topcenter,
7. bottomleft,
8. bottomright,
9. bottomcenter,
具体添加方法如下:
- 下载TimThumb.php最新版本,用编辑器打开
在59行找到以下代码:
$quality = preg_replace("/[^0-9]+/", "", get_request("q", 80));$filters = get_request("f", "");
在它的后面追加一行代码:
$crop_from = get_request( 'cropfrom', 'middle' ) ;在160行找到:
imagecopyresampled( $canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height );替换为:
// Crop position STARTif($crop_from =="middle" )
// crop from center
{ imagecopyresampled( $canvas, $image, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h ); }
// crop from middle left
elseif ($crop_from =="middleleft" )
// crop from middle right
{ imagecopyresampled( $canvas, $image, 0, 0, 0, $src_y, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from ==”middleright” )
// crop from top center
{ imagecopyresampled( $canvas, $image, 0, 0, 2*$src_x, $src_y, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="topcenter" )
// crop from top center
{ imagecopyresampled( $canvas, $image, 0, 0, $src_x, 0, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="topleft" )
// crop from top left
{ imagecopyresampled( $canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="topright" )
// crop from top center
{ imagecopyresampled( $canvas, $image, 0, 0, 2*$src_x, 0, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="bottomcenter" )
// crop from bottom center
{ imagecopyresampled( $canvas, $image, 0, 0, $src_x, 2*$src_y, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="bottomleft" )
// crop from bottom left
{ imagecopyresampled( $canvas, $image, 0, 0, 0, 2*$src_y, $new_width, $new_height, $src_w, $src_h ); }
elseif ($crop_from =="bottomright" )
// crop from bottom center
{ imagecopyresampled( $canvas, $image, 0, 0, 2*$src_x, 2*$src_y, $new_width, $new_height, $src_w, $src_h ); }
elseif (!$crop_from)
// no data
{ imagecopyresampled( $canvas, $image, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h ); }
// Crop position END
如果你不需要这么多功能,你可以删除与其对应的代码。
- 如何使用
使用很简单,只需要在默认调用的方法上追加&cropfrom=[position],以下是示例:
src=/images/whatever.jpg&h=150&w=150&zc=1&cropfrom=topleft如果你还不清楚TimThumb的基本使用,我建议你阅读《TimThumb及其在wordpress中的应用》
OK!关于TimThumb的使用就全部介绍完了,这是我前段时间在鼓捣图片主题过程中的一些心得,记录下来希望对想使用它的童鞋们有些帮助!
声明:城市@后版权所有,未经授权请勿转载本博客日志到任何博客或论坛!
如果你喜欢我的文章,欢迎订阅。Google Reader | 鲜果 | 抓虾 | 九点 | QQ邮箱 | 有道 | 更多

Recent Comments