一个保证图片让图片不变形的PHP函数
May042012
仿站的时候,很多时候同一个站会有多种分辨率的缩略图,而DEDE只能设置一种默认分辨率的缩略图,不能满足要求。我们看见,很多网站因为缩略图分辨率不一样,而是首页和列表页的图片变形失真,影响美观。下面是本人写的一个函数,可以让图片不在变形!
- //图片不变形显示
- //本函数由手记阁原创blog.shoujige.com
- //$picurl为图片地址,$zdwidth为最大宽度$zdheight最大高度
- //最大高度和最大宽度根据图片位设定,函数会智能处理
- function imageview($picurl,$zdwidth=161,$zdheight=214)
- {
- global $cfg_basedir;
- if(!eregi(“^http://”,$picurl)&&$picurl!=””)
- {
- $picurl=$cfg_basedir.$picurl;
- }
- $imginfos = GetImageSize($picurl);
- if($imginfos[0]>$zdwidth&&$imginfos[1]<$zdheight)
- {
- $info=”width='{$zdwidth}'”;
- }else if($imginfos[0]<$zdwidth&&$imginfos[1]>$zdheight)
- {
- $info=”height='{$zdheight}'”;
- }else if($imginfos[0]>$zdwidth&&$imginfos[1]>$zdheight)
- {
- $info=$imginfos[0]/$imginfos[1]<=$zdwidth/$zdheight?”height='{$zdheight}'”:”‘width={$zdwidth}'”;
- }else
- {
- $info=””;
- }
- return $info;
- }
使用方法:
1、将上面的函数代码添加到includechannelunit.func.php末尾的?>之前,保存退出。
2、在图集内容页里使用,调用代码如下:<img src='[field:imgsrc/]’ id=’bigimg’ [field:imgsrc function=imageview(@me,152,112) /] alt='[field:alttext /]’ border=’0′ />
3、在首页和列表页使用,调用代码如下:<img src=”[field:litpic/]” [field:litpic function=imageview(@me,152,112)/] alt=”[field:title function=’html2text(@me)’/]”/>
4、注意一点,如果想让代码起作用,请将CSS样式表中的图片位宽高样式去掉,否则代码有可能失效。
修改好的includechannelunit.func.php文件下载: channelunit.func.rar
人才啊 高手
2012-06-26 下午10:58看不懂
2012-08-19 下午2:15