- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
由于 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,
文档评论(0)