网站运营
位置:首页>> 网站运营>> dedecms 5.6 缩略图按大小比例缩小裁剪

dedecms 5.6 缩略图按大小比例缩小裁剪

 来源:Asp之家 发布时间:2010-12-08 16:53:00 

标签:缩略图,dedecms

这样的话,如果图片的宽高比例不合适,那么缩略图将会被压缩得很不好看,在这里,我是先对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪,这样生成的缩略图的显示效果要比原来的要好得多了。

于是重新修改了一下DEDECMS v5.6缩略图生成方法。

默认dedecms5.6默认生成的缩略图,缩略图大小设置为:100*100(直接把图片缩小了)

看起来很不美观,影响了图片的观赏性

DEDECMS v5.6缩略图裁剪优化方法

修改如下:

打开/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;
}




0
投稿

猜你喜欢

  • 鉴于一些众所周知的原因,最近国内的环境越来越不适合独立博客。将独立博客转移到国内主机空间,尽管不是最好的选择,却也是非常时期不得已的一个选项
  • 今天闲来无事,继而顺手截图做一些IIS7的安装图文教程,以及fastcgi模式下配置PHP,现在网上很多IIS7下配置PHP的教程还停顿在I
  • 在讨论Web站点安全之前,了解Web的技术原理,对于Web安全工作者而言应该是有益处的。一、Web技术简介World Wide Web称为万
  • 服务器在线12月2日报道 虚拟服务器在企业中发挥着越来越重要的作用,管理员面对的现状是在同一台物理服务器上安装了多台虚拟机。每台虚拟机都使用
  • 如何使用Godaddy主机拷贝Account Manager的文件到自己选择的目的地去呢?首先. 登陆你的Account Manager.第
  • 有很多发布商不能确定自己的网页投放哪一种广告格式和颜色效果最好。也有些发布商认为自己目前投放的广告格式就是最好的,而事实是不是真的是这样呢?
  • 当一家企业实施CRM的时候,CRM的专用词汇的发展对开发商业模式和沟通变得至关重要。理解CRM术语对开发新商业模式和促使向以客户为中心转变变
  • 以前一直在寻找一个方法备份和从别的Wordpress中导入友情链接(blogroll)。但是一直没有人告诉一个办法,只是说从数据库中导入。但
  • 日前一起关于不正当占用他人姓名作为注册域名的案件在美国结束审理,法院裁定犯案者向所以涉案的人员归还本属于他们的域名。在这起案件中,被占用域名
  • 在过去一年多的优化中,我们遇到过不少这样的案例,发布商的广告网页展示次数、广告配置、网站运营都没有太大的变化,但点击率却一直在下降。在我们的
  • 目录1. 什么是wp与支付宝的系统集成?2. 为什么写这篇文章?3. 系统集成的步骤4. 一些感想正文1. 什么是wp与支付宝的系统集成?支
  • 因为WordPress自带的搜索功能结果排序非常糟糕,在站点文章多的时候很难通过搜索找到自己要找的内容,不少人已经使用 Google CSE
  • 维护服务器安全的七大技巧:一、从基本做起,及时安装系统补丁不论是Windows还是Linux,任何操作系统都有漏洞,及时的打上补丁避免漏洞被
  • Discuz!是康盛创想(Comsenz)公司推出的一款论坛BBS产品,目前最新版本是Discuz! 7.1。为使站长更方便快捷地管理后台,
  • Exchange Server 2007的管理员们可以使用命令行这种简单的方式来定制邮件配额警告以及报告传递电子邮件的尝试结果的通知的邮件。
  • 前些天在站长网看到一篇文章,大体是说写了一篇败坏百度的博文,被百度惩罚了,又写了一篇赞美百度的博文,立刻恢复收录了。加上留言里有人有相同的遭
  •  DEDECMS鼠标 hover 显示全部标题的简便方法因网页设计的原因,在某些地方我们需要截取文章的部分标题,但这样无论对SEO
  • 各位站长好,以前给百度客服打过N次电话,每每问及近期收录相关事谊都不给允回答。今天又打了一次。接电话的是个男的,听声音好像未成年...(日小
  • 人之患在好为人师。陈国华邀请我加入“创业圈”群,并讲讲创业,其实我没什么资格给大家讲创业。我只是觉得现在的年轻人在理解别人说过的话的方面比较
  • 一个中心是指以用户体验为中心,两个基本点是指以寻找产品差异化,寻找盈利模式点。那么四项基本原则是针对一个中心,即用户体验为中心的阐述。我们在
手机版 网站运营 asp之家 www.aspxhome.com