本文主要阐述了志盟DEDECM缩略图失真和模糊的解决方法。默认情况下,智盟dedecms只生成一个标准大小的缩略图,一个站点不同页面所需的缩略图大小和比例往往不一致,导致缩略图不清晰、扭曲,无法满足大多数网站的需要,本文提出了一个最终的完美解决方案
修改方法:
1、 要获得清晰的缩略图,您需要有足够大的图片并准确地剪切,下面的方法是根据缩略图进行剪切(因为原始图片中的一些网站有水印),因此您必须确保原始缩略图足够大,因此,您需要设置以下设置:系统附件设置,设置缩略图的默认宽度默认高度设置为大于或等于整个站点中所有调用缩略图的最大大小。请将其剪得足够大以便手动剪切(不需要手动剪切)
2、 打开/include/extend.func.php文件(注意:此文件为二次开发准备,用于函数方法扩展)
- 在最后一个 ?> 前加入以下代码
- function thumb($imgurl, $width, $height, $bg = true)
- {
- global $cfg_mainsite,$cfg_multi_site;
- $thumb = eregi(“http://”,$imgurl)?str_replace($cfg_mainsite,”,$imgurl):$imgurl;
- list($thumbname,$extname) = explode(‘.’,$thumb);
- $newthumb = $thumbname.’_’.$width.’_’.$height.’.’.$extname;
- if(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) return $imgurl;
- 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)’/]
- 保留原有比例,不自动填充(不建议):[field:picname function=’thumb(@me,100,100,false)’/]