DedeCMS v5.6缩略图优化为缩图更加美观的修改效果

DedeCMS v5.6缩略图优化为缩图更加美观的修改效果 – 发表于: ASQQ8.NET 网络资源网!

由于DEDECMS v5.6缩略图生成方法是按比例进行放缩的,和之前的版本问题一样,dedecms的官方也许根本没有注意到,或者他们觉得这样才是最好的缩略图生成方式,这样的话,如果图片的宽高比例不合适,那么缩略图将会被压缩得很不好看,在这里,我是先对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪,这样生成的缩略图的显示效果要比原来的要好得多了。于是重新修改了一下DEDECMS v5.6缩略图生成方法。默认dedecms5.6默认生成的缩略图,缩略图大小设置为:100*100(直接把图片缩小了)看起来很不美观,影响了图片的观赏性DEDECMS v5.6缩略图裁剪优化方法修改如下:打开/includes/image.func.php文件,//缩图片自动生成函数,来源支持bmp、gif、jpg、png//但生成的小图只用jpg或png格式找到代码第44行function ImageResize至//获得GD的版本之间的代码,用如下的代码覆盖(大家请注意备份)。

function ImageResize($srcFile,$toW,$toH,$toFile=""){global $cfg_photo_type;if($toFile==""){ $toFile = $srcFile;}$info = "";$srcInfo = GetImageSize($srcFile,$info);switch ($srcInfo[2]){ case 1:if(!$cfg_photo_type[‘gif’]){ return false;}$im = imagecreatefromgif($srcFile);break; case 2:if(!$cfg_photo_type[‘jpeg’]){ return false;}$im = imagecreatefromjpeg($srcFile);break; case 3:if(!$cfg_photo_type[‘png’]){ return false;}$im = imagecreatefrompng($srcFile);break; case 6:if(!$cfg_photo_type[‘bmp’]){ return false;}$im = imagecreatefromwbmp($srcFile);break;}$srcW=ImageSX($im);$srcH=ImageSY($im);if($srcW<=$toW && $srcH<=$toH ){ return true;}//缩略生成并裁剪$newW = $toH * $srcW / $srcH; $newH = $toW * $srcH / $srcW;if($newH >= $toH){ $ftoW = $toW; $ftoH = $newH;}else{ $ftoW = $newW; $ftoH = $toH;} if($srcW>$toW||$srcH>$toH){ if(function_exists("imagecreatetruecolor")) {@$ni = imagecreatetruecolor($ftoW,$ftoH);if($ni){ imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);}else{ $ni=imagecreate($ftoW,$ftoH); imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);} } else {$ni=imagecreate($ftoW,$ftoH);imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); } //裁剪图片成标准缩略图 $new_imgx = imagecreatetruecolor($toW,$toH); if($newH >= $toH) {imagecopyresampled($new_imgx,$ni,0,0,0,($newH – $toH)/2,$toW,$toH,$toW,$toH); } else {imagecopyresampled($new_imgx,$ni,0,0,($newW – $toW)/2,0,$toW,$toH,$toW,$toH); } switch ($srcInfo[2]) {case 1: imagegif($new_imgx,$toFile); break;case 2: imagejpeg($new_imgx,$toFile,85); break;case 3: imagepng($new_imgx,$toFile); break;case 6: imagebmp($new_imgx,$toFile); break;default: return false; } imagedestroy($new_imgx); imagedestroy($ni);}imagedestroy($im);return true;}

作者: asqq8 发表于 2010-10-15 07:54 原文链接

评论: 0 查看评论 发表评论

最新新闻:· 社交游戏的那些事儿(2010-11-14 21:25)· Go语言:一年前的今天(2010-11-14 21:25)· CouchDB退出,NoSQL运动开始分崩离析?(2010-11-14 20:09)· 关于 iPad 的调查报告(2010-11-14 19:57)· “必应词典”是怎么炼成的(2010-11-14 19:54)

编辑推荐:风雨20年:我所积累的20条编程经验

网站导航:博客园首页我的园子新闻闪存小组博问知识库

生活不要太劳累,弄得自己很疲惫,快乐幸福多体会,

DedeCMS v5.6缩略图优化为缩图更加美观的修改效果

相关文章:

你感兴趣的文章:

标签云: