dedecms使用过程中可能会在不同地方调用不同大小的缩略图,系统的尺寸是固定大小,不能满足要求,网上给出的代码使用系统生成的缩略图填充背景让不变形,但是不好看,稍微修改一下,用原图裁切指定的大小,不填充背景。
打开include\helpers\filter.helper.php (注:这个文件就是为二次开发准备的,用于功能方法扩展),在最后加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function thumb($imgurl, $width, $height, $bg = false) { global $cfg_mainsite,$cfg_multi_site; $newimgurl=str_replace('-lp','',$imgurl); $thumb = eregi("https://",$newimgurl)?str_replace($cfg_mainsite,'',$newimgurl):$newimgurl; list($thumbname,$extname) = explode('.',$thumb); $newthumb = $thumbname.'_'.$width.'_'.$height.'.'.$extname; if(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) return $newimgurl; if(!file_exists(DEDEROOT.$newthumb)){ include_once DEDEINC.'/image.func.php'; if($bg==true){ ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb); }else{ ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb); } } return $cfg_multi_site=='Y'?$cfg_mainsite.$newthumb:$newthumb; } |
调用方法:
标签 : [field:picname function='thumb(@me,$width,$height,$bg)'/]
参数说明:
$width:缩略图宽度(整数)
$height:缩略图高度(整数)
$bg:是否用空白填补,默认自动填补,背景填充颜色在系统-附件设置里(true/false)
举例:
调用长宽为100像素的缩略图,空白部分填充颜色:[field:picname function='thumb(@me,100,100,true)'/]
裁切100x100大小的缩略图,不自动填充:[field:picname function='thumb(@me,100,100)'/]