云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何有效解决DedeCms 5.7中缩略图变形的问题?

织梦DedeCms5.7缩略图变形问题可以通过修改CSS样式或调整图片尺寸解决。

织梦DedeCms5.7版本中,缩略图变形的问题可以通过修改代码和调整设置来解决,以下是详细的解决方法:

方法一:修改调用标签

在织梦DedeCMS5.7中,列表页调用缩略图的标签是[field:array runphp='yes']@me = (empty(@me['litpic']) ? "" : "<a href='{@me['arcurl']}' class='preview'><img src='{@me['litpic']}'/></a>"); [/field:array]这个标签调用出来的缩略图是没有定义图片的大小的,我们只需要用CSS在图片外边加一个框定义宽度超出高度隐藏,图片是不会变形的。

方法二:修改生成缩略图的源码

织梦DedeCMS的缩略图是自动提取的,相当于原图的等比例缩放,如果后台设置的缩略图大小与内容里的大图尺寸不一致,这样生成出来的图片就会变形,为了解决这个问题,可以修改生成缩略图的源码,具体步骤如下:

1、备份文件:在修改之前,一定要先对对应的文件进行备份,防止造成无法预料的程序错误。

2、找到文件:打开include/helpers/中的image.helper.php文件。

3、修改代码:将以下代码:

   $srcW=ImageSX($im);
   $srcH=ImageSY($im);
   if($srcW<=$toW && $srcH<=$toH ) return TRUE;
   $toWH=$toW/$toH;
   $srcWH=$srcW/$srcH;
   if($toWH<=$srcWH){$ftoW=$toW;$ftoH=$ftoW*($srcH/$srcW);}else{$ftoH=$toH;$ftoW=$ftoH*($srcW/$srcH);}

修改为:

   $srcW=ImageSX($im);
   $srcH=ImageSY($im);
   if($srcW<=$toW && $srcH<=$toH ) return TRUE;
   $toWH=$toW/$toH;
   $srcWH=$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;}

这样就可以实现对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪的功能。

方法三:自定义尺寸缩略图

除了上述方法外,还可以通过改配置文件或自定义尺寸缩略图来解决问题,具体操作如下:

1、在网站后台系统中设置网站缩略图尺寸大小和模板中调用图片最大尺寸相同。

2、修改include/helpers/下的image.helper.php文件,将以下代码:

   $srcW=ImageSX($im);
   $srcH=ImageSY($im);
   if($srcW<=$toW && $srcH<=$toH ) return TRUE;
   $toWH=$toW/$toH;
   $srcWH=$srcW/$srcH;
   if($toWH<=$srcWH){$ftoW=$toW;$ftoH=$ftoW*($srcH/$srcW);}else{$ftoH=$toH;$ftoW=$ftoH*($srcW/$srcH);}

修改为:

   $srcW=ImageSX($im);
   $srcH=ImageSY($im);
   if($srcW<=$toW && $srcH<=$toH ) return TRUE;
   $toWH=$toW/$toH;
   $srcWH=$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;}

这样就可以实现对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪的功能。

FAQs

问题1:为什么织梦DedeCMS5.7的缩略图会变形?

答:织梦DedeCMS的缩略图是自动提取的,相当于原图的等比例缩放,如果后台设置的缩略图大小与内容里的大图尺寸不一致,这样生成出来的图片就会变形。

问题2:如何修改织梦DedeCMS5.7的缩略图生成方式?

答:可以通过修改生成缩略图的源码来实现,具体步骤包括备份文件、找到文件(include/helpers/中的image.helper.php)并修改相关代码,以实现对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪的功能。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何有效解决DedeCms 5.7中缩略图变形的问题?》
文章链接:https://www.yunzhuji.net/internet/248226.html

评论

  • 验证码