版权声明:
1、本文内容由网友自发贡献,版权归原作者所有。
2、本站仅提供文章发布平台,文章的内容与本站无关,请真伪自辩,本站不承担相应法律责任。
3、如果发现本站有涉嫌抄袭侵权的内容,欢迎举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
4、转载请注明本文地址:http://www.19zh.com/artinfo/691.html
如何让dedecms的缩略图不变形的修改方法
来源:dedecms 浏览:207次 时间:2022-11-20
织梦cms目前几个最新版本的缩略图生成方式都是采用缩小或拉伸的方式进行完整显示,如果使用的图片和缩略图所显示的比例不
一致的话,会使得缩略图拉伸变形。如果不改变织梦目前的缩略图显示方式的话,又想缩略图不拉伸变形显示,就得制作一个和显示缩略图位置大
小一致或者图片比例一致且大于缩略图的分辨率就会不拉伸变形了。
我们可以通过下面方法修改实现,对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪,这样生成的缩略图的显示
效果要比原来的要好得多了。同时也可以采取之际制作好分辨率一致的缩略图进行显示。
于是重新修改了一下DedeCms v5.7缩略图生成方法。
默认DedeCms 5.7默认生成的缩略图,缩略图大小设置为:100*100(直接把图片缩小了)
看起来很不美观,影响了图片的观赏性
DEDECMS v5.7缩略图裁剪优化方法
修改如下:
打开/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;
}
- 上一篇: 帝国cms如何自动添加内链
- 下一篇: 帝国cms怎么批量修改文章发布时间
推荐资讯
推荐站点
- 自学ps教程网
分享原创ps图文教程:从新手零基础入门ps教程,到ps设计实战经验,以及很多网友要学的ps抠图教程,都会通过图文的方式,展示给大家,用简洁的语言,到位的图示,让您轻松查阅,快速get到要点,新知识、新图例,尽在taoxuemei.com!
www.taoxuemei.com - 189d下载网
189d下载网是一个资源下载中心,为用户提供最新的手机游戏下载、最好用的安卓app下载,以及各种最新的电脑软件和单机游戏的免费下载,还有各种热门游戏的攻略和软件使用教程。
www.189d.com - 全球工厂网
全球工厂网是专注企业信息化的综合电子商务服务平台,汇集各行业供求信息,为客户提供高标准的一站式服务
https://www.gc1288.com/ - 38健康网-专业女性健康知识网站
38健康网(www.ni38.com)专业的女性健康网站,提供女性健康小常识、心理健康、生理健康、亚健康、女性保健、女性孕育、健康食谱、妇科疾病等的综合女性健康网站.
www.ni38.com - 1080影视大全
【1080影视大全】为您提供好看的电影、全新电视剧、全新动漫、全新综艺节目排行榜,免费在线观看lunli电影、动作片、 喜剧片、爱情片、搞笑片等全新电影,更多电影高清在线观看尽在1080影视大全(www.ki65.com)。
www.ki65.com - 简书
简书是一个优质的创作社区,在这里,你可以任性地创作,一篇短文、一张照片、一首诗、一幅画……我们相信,每个人都是生活中的艺术家,有着无穷的创造力。
www.jianshu.com