您现在的位置是:首页 > 教程 > dedecms教程dedecms教程
织梦dedecms实现缩略图不变形的修改方法
访烟2023-10-10 18:06:08dedecms教程已有人查阅
导读织梦cms目前几个较新版本的缩略图生成方式都是采用缩小或拉伸的方式进行完整显示,如果使用的图片和缩略图所显示的比例不一致的话,会使得缩略图拉伸变形。
织梦cms目前几个较新版本的缩略图生成方式都是采用缩小或拉伸的方式进行完整显示,如果使用的图片和缩略图所显示的比例不一致的话,会使得缩略图拉伸变形。如果不改变织梦目前的缩略图显示方式的话,又想缩略图不拉伸变形显示,就得制作一个和显示缩略图位置大小一致或者图片比例一致且大于缩略图的分辨率就会不拉伸变形了。
我们可以通过下面方法修改实现,对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪,这样生成的缩略图的显示效果要比原来的要好得多了。同时也可以采取之际制作好分辨率一致的缩略图进行显示。
于是重新修改了一下DedeCms v5.6缩略图生成方法。
默认dedecms5.6默认生成的缩略图,缩略图大小设置为:100*100(直接把图片缩小了)
看起来很不美观,影响了图片的观赏性
DedeCMS v5.6缩略图裁剪优化方法
修改如下:
打开/includes/image.func.php文件,
至
我们可以通过下面方法修改实现,对图片进行按宽或高进行放缩,超过缩略图大小的部分再进行裁剪,这样生成的缩略图的显示效果要比原来的要好得多了。同时也可以采取之际制作好分辨率一致的缩略图进行显示。
于是重新修改了一下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;
}
本文标签:
很赞哦! ()
相关文章
- dedecms实现tags云标签随机颜色与字体大小的方法
- 织梦dedecms实现键盘翻页效果的实现方法
- dedecms实现将表单订单发送到邮箱实例代码
- 织梦dedecms实现{dede:arclist keyword='[field:title/]'}效果
- dedecms实现表单分步提交的思路方法
- 织梦dedecms实现无觅相关文章功能步骤代码
- dedecms实现首页内页调用不同的友情链接的实现方法
- 简单几步为dedecms实现LightBox效果
- 让dedecms实现shtml包含的实现方法
- dedecms实现自定义表单(模型)分步提交的方法
- 织梦dedecms实现三级栏目_二级栏目_一级栏目_网站名称效果代
- dedecms实现大图showphoto.htm输出图集内容简介的实现方法
随机图文
-
织梦dedecms做博客类淘宝客站点遇到的问题及解决方法
到昨天的“zblog2.0安装子目录下伪静态后其它正常静态页面空白的问题(这个已经12月27日已经发布到我的站内站blog中了,由于网站改版所以这里移出到主博客)”已经半个多月没有分享东西了 -
dedecms文章第一张图片设置为文章缩略图的SQL语句
织梦dedecms有时勾选自动生成缩略图却无效,造成不能获取缩略图,下面2句sql可以解决这个问题:12update dede_archives,dede -
织梦cms生成的文章页没有css样式怎么办
相信有不少朋友和我一样,发布一篇文章,发现居然没有CSS样式。起初还以为生成的时候出现问题,没有生成成功,又生成了好多次还是这样,其他文章又正常。出现这种 -
dedecms提交自定义表单后跳转地址怎么修改
dedecms的自定义表单功能还是很不错的,你可以将其放到任意模板位置,用来提交不同数据。但是当将其放到某个页面,如这个酒店预订页面后选择提交,将返回到网站首页
留言与评论 (共有 条评论) |