网站运营
位置:首页>> 网站运营>> 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
投稿

猜你喜欢

  • 一、DHCP概述DHCP是动态主机配置协议(Dynamic Host Configure Protocol)的缩写。一台DHCP服务器可以让
  • Windows 2000 Server是比较流行的服务器操作系统,如何安全地配置这个操作系统呢?本文试图从用户安全设置、密码安全设置、系统安
  • 10月21日消息,阿里巴巴B2B公司今日对外公布“中国中小企业商务服务伙伴计划”,与首批纳入计划的四家物流巨头签订战略合作协议,其中天天快递
  • 过去的三个月里 Google 宣布了在搜索结果的一系列新测试和新功能,值得回头来看看其间最频繁的,也研究下对于未来的优化工作会有什么潜在的影
  • 同Web站点一样,用户也可以使用多种方法来管理FTP站点服务器。例如:设置FTP站点服务器的虚拟目录的访问权限、设置匿名访问、创建用户账户等
  • 三、附目1、我的/etc/vsftpd.conf文件的内容[quote:93f3c4a2db]#Exampleconfigfile/etc/
  • 1、如何界定经营性和非经营性,有没有一个固定的规则?如果只是产品展示,是否应办理经营许可证?有偿提供服务的就是经营性的,无偿提供服务的就是非
  • 如果Google发现某个Adsense用户在点击自己的Adsense广告,那么会将这个Adsense帐号关闭。一些Adsense用户却不明白
  • 网上搜出来的比较乱,讲的不明不白,因此根据自己弄过一次,确认可行的方式,做个备份,方便日后查阅。环境:在Oracle VM VirtualB
  • 如果想创建一个拥有忠实读者的博客,博客的设计是非常重要的。但如果想获得一个专业的设计,在博客主题类型上将要花费不少。但是,你也可以试着寻找一
  • 影响网站排名的因素据说有300多个,但对于网站优化来说,将这300多个因素都考虑到并且做得尽善尽美其实并不现实,也没必要。但下面列出的五个因
  • 尽管看似已经是天下太平,但是实际上,微软、雅虎与伊坎之间的传奇故事还远没有到结束的时候,硅谷对此的最新看法是,雅虎很可能握有微软希望得到的某
  •  如果你能写好和维持准确的元标记(例如,描述性标题和为搜索机器人提供的信息),Google就可以更准确地爬行、索引并在搜索结果中显
  • 一个让许多人首次感受互联网的浏览器将要消失于世间。自2008年3月1日起,现在由美国在线(AOL)拥有的网景领航员浏览器(Netscape
  • 如何在Vmware中创建Linux虚拟机并设置Vmware和虚拟机网络创建Linux虚拟机创建虚拟机配置类型选择自定义虚拟机硬件兼容性,选择
  • 本期教程,笔者教大家如何添加UCenter管理员。一、分清概念UCenter后台登陆和Discuz!论坛登录账号混淆。UCenter后台初次
  • 现在有关Windos server 2008的NAP(Network Access Protection网络访问保护)的文章可以说是多如牛毛
  • 建立博客有助于打造卓越企业的核心要件。企业的核心需求如下所示:妙点子好产品能见度训练有素的团队,为企业的成功而努力不懈提升业务的创意,改善公
  • vsFTP服务器的安装安装一个软件实在是不许要在这里介绍,因此,这里的安装主要针对vsFTPd服务器的初级配置。这是我这个菜鸟学习LINUX
  • 经常碰到客户问百度、谷歌排到第一多少钱,我耐心的解释无法保证第一的原因,最后客户以保持怀疑的态度关闭了与我的对话,我想有必要写一下这方面的东
手机版 网站运营 asp之家 www.aspxhome.com