织梦dede:arclist关键词标签keyword动态获取变量
织梦cms现在几个最新版本的缩略图天生方式都是接纳缩小或拉伸的方式举行完整显示,若是使用的图片和缩略图所显示的比例纷歧致的话,会使得缩略图拉伸变形。若是不改变织梦现在的缩略图显示方式的话,又想缩略图不拉伸变形显示,就得制作一个和显示缩略图位置巨细一致或者图片比例一致且大于缩略图的分辨率就会不拉伸变形了。
我们可以通过下面方式修改实现,对图片举行按宽或高举行放缩,
跨越缩略图巨细的部门再举行裁剪,这样天生的缩略图的显示效果要比原来的要好得多了。同时也可以接纳之际制作好分辨率一致的缩略图举行显示。如何利用DedeCMS 万能标签调用圈子精华置顶主题
于是重新修改了一下DedeCms v5.7缩略图天生方式。
默认DedeCms 5.7默认天生的缩略图,缩略图巨细设置为:100*100(直接把图片缩小了)
看起来很不雅观,影响了图片的鉴赏性
DEDECMS v5.7缩略图裁剪优化方式
修改如下:
打开/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;
}
DedeCMS v5.7 会员注册验证邮箱设置教程