设置缩略图高度和宽度的方法
方法一:使用getimagesize函数
1、获取图片信息:在include/helpers/extend.helper.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、模板调用:在模板中使用以下代码来输出图片的高度。
<img src="[field:litpic/]" height="[field:litpic function='getheight(@me)'/]">
3、注意事项:这种方法在URL中带有www时可能会遇到问题,例如http://www.xxx.com
无法正常获取,而http://xxx.com
则可以正常获取。
方法二:在数据库中存储图片尺寸
1、获取图片尺寸并插入数据库:在dede/article_add.php文件的插入数据库前添加以下代码。
//获取缩略图宽度及高度 $litpicc = $GLOBALS['cfg_basehost'].$litpic; $arr = getimagesize($litpicc); $width = $arr[0]; // 宽度 $height = $arr[1]; // 高度
2、更新数据库表结构:在数据库中添加相应字段以存储图片的宽度和高度。
3、通过数据库调用:在模板中直接调用数据库中的宽度和高度字段。
<img src="[field:litpic/]" width="[field:width/]" height="[field:height/]">
方法三:使用自定义函数生成缩略图
1、编写缩略图生成函数:在include/helpers/image.helper.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、调用缩略图生成函数:在模板中使用以下代码来生成缩略图。
[field:picname function='thumb(@me,100,100)'/]
相关问答FAQs
1、Q: 为什么在使用getimagesize函数时,带有www的URL无法正常获取图片尺寸?
A: 这可能是由于服务器配置或URL重写规则导致的,可以尝试在配置文件中调整URL设置,或者使用不带www的URL进行测试。
2、Q: 如何在织梦CMS中设置多张默认缩略图?
A: 可以通过修改默认缩略图的文件名来实现,在网站根目录的images文件夹中找到defaultpic.gif文件,将其替换为其他图片即可,如果需要设置多张随机显示的缩略图,可以在JS文件中编写随机调用不同图片的代码。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1223665.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复