当前位置:首页 > 行业动态 > 正文

如何在DEDE织梦中自定义缩略图的尺寸?

在DEDE织梦中,可以通过后台的系统设置来调整缩略图的高度和宽度。具体操作路径为:登录网站管理后台 > 系统 > 系统基本参数 > 图片水印设置,在这里可以设置缩略图的高度和宽度。

设置缩略图高度和宽度的方法

方法一:使用getimagesize函数

1、获取图片信息:在include/helpers/extend.helper.php文件中添加以下代码。

PHP
   if ( ! function_exists('getheight')) {
       function getheight($litpic) {
           $litpicc = $GLOBALS['cfg_basehost'].$litpic;
           $arr = getimagesize($litpicc);
           $result = $arr[1]; // 此为高度
           //$result = $arr[0]; //此为宽度
           return $result;
       }
   }

2、模板调用:在模板中使用以下代码来输出图片的高度。

Markup
   <img src="[field:litpic/]" height="[field:litpic function='getheight(@me)'/]">

3、注意事项:这种方法在URL中带有www时可能会遇到问题,例如http://www.xxx.com无法正常获取,而http://xxx.com则可以正常获取。

方法二:在数据库中存储图片尺寸

如何在DEDE织梦中自定义缩略图的尺寸?

1、获取图片尺寸并插入数据库:在dede/article_add.php文件的插入数据库前添加以下代码。

PHP
   //获取缩略图宽度及高度
   $litpicc = $GLOBALS['cfg_basehost'].$litpic;
   $arr = getimagesize($litpicc);
   $width = $arr[0]; // 宽度
   $height = $arr[1]; // 高度

2、更新数据库表结构:在数据库中添加相应字段以存储图片的宽度和高度。

3、通过数据库调用:在模板中直接调用数据库中的宽度和高度字段。

Markup
   <img src="[field:litpic/]" width="[field:width/]" height="[field:height/]">

方法三:使用自定义函数生成缩略图

如何在DEDE织梦中自定义缩略图的尺寸?

1、编写缩略图生成函数:在include/helpers/image.helper.php文件中添加以下代码。

PHP
   if ( ! function_exists('thumb')) {
       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;
       }
   }

2、调用缩略图生成函数:在模板中使用以下代码来生成缩略图。

Markup
   [field:picname function='thumb(@me,100,100)'/]

相关问答FAQs

1、Q: 为什么在使用getimagesize函数时,带有www的URL无法正常获取图片尺寸?

如何在DEDE织梦中自定义缩略图的尺寸?

A: 这可能是由于服务器配置或URL重写规则导致的,可以尝试在配置文件中调整URL设置,或者使用不带www的URL进行测试。

2、Q: 如何在织梦CMS中设置多张默认缩略图?

A: 可以通过修改默认缩略图的文件名来实现,在网站根目录的images文件夹中找到defaultpic.gif文件,将其替换为其他图片即可,如果需要设置多张随机显示的缩略图,可以在JS文件中编写随机调用不同图片的代码。