DedeCMS缩略图生成函数优化:实现居中裁剪而非原比例缩放
DedeCMS自动生成的缩略图片默认是根据自定义的最大长宽,按原比例缩小原图。这种方式在图片索引页排版时容易导致图片尺寸不统一,影响页面美观。许多站长不得不通过CSS自动判断调整高宽,但这种方法比较消耗服务器资源。因此,直接修改缩略图生成函数,实现居中裁剪效果,是更优的解决方案。
修改文件:image.func.php(或inc_photograph.php)
找到以下原始代码:
if($toWH<=$srcWH){
$ftoW=$toW;
$ftoH=$ftoW*($srcH/$srcW);
}
else{
$ftoH=$toH;
$ftoW=$ftoH*($srcW/$srcH);
}
将其替换为:
$ftoH=$toH;
$ftoW=$toW;
if ($toWH<=$srcWH) {
$src_Y = 0;
$src_X = ($srcW-$srcH*$toWH)/2;
$srcW = $srcH*$toWH;
} else {
$src_X = 0;
$src_Y = ($srcH-$srcW/$toWH)/2;
$srcH = $srcW/$toWH;
}
继续找到以下代码行:
($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH)
将其更改为:
($ni,$im,0,0,$src_X,$src_Y,$ftoW,$ftoH,$srcW,$srcH)
这一小改动的作用是:在原图中截取最大面积的、符合自定义缩略图长宽比例的部分,生成缩略图。从而实现居中裁剪效果,使所有缩略图尺寸统一,排版更整齐,同时避免CSS资源消耗。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
