要使DedeCMS的缩略图更清晰且不变形,需要通过一些代码调整和设置来实现,以下是详细的步骤和方法:
一、修改include/extend.func.php文件
1、打开include/extend.func.php:这个文件是用于功能方法扩展的,通常在DedeCMS的二次开发中使用。
2、添加自定义函数:在最后一个 ?> 前加入以下代码:
“`php
function thumb($imgurl, $width, $height, $bg = true)
{
global $cfg_mainsite,$cfg_multi_site;
$thumb = eregi("http://",$imgurl)?str_replace($cfg_mainsite,"",$imgurl):$imgurl;
list($thumbname,$extname) = explode(‘.’,$thumb);
$newthumb = $thumbname.’_’.$width.’_’.$height.’.’.$extname;
if(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) return $imgurl;
if(!file_exists(DEDEROOT.$newthumb))
{
include_once DEDEINC.’/image.func.php’;
if($bg==true)
{
ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
}
else
{
ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
}
}
return $cfg_multi_site==’Y’?$cfg_mainsite.$newthumb:$newthumb;
}
“`
3、调用方法:
标签:[field:picname function='thumb(@me,$width,$height,$bg)'/]
参数说明:
$width
: 缩略图宽度(整数)
$height
: 缩略图高度(整数)
$bg
: 是否用空白填补,默认自动填补,背景填充颜色在系统附件设置里(true/false)
举例:
调用长宽为100像素的缩略图:[field:picname function='thumb(@me,100,100)'/]
保留原有比例,不自动填充(不建议):[field:picname function='thumb(@me,100,100,false)'/]
设置系统附件设置
1、确保图片足够大:为了获得清晰的缩略图,必须保证原图尺寸足够大,在系统附件设置中,将缩略图默认宽度和默认高度设为大于等于你全站所有调用缩略图的最大尺寸,这样,手工剪裁时也请剪裁得足够大(不需要手工剪裁了)。
解决缩略图变形问题
1、修改include/helpers/extend.helper.php文件:在最下面加上以下代码:
“`php
if ( ! function_exists(‘thumb’)) {
function thumb($imgurl, $width, $height, $bg = true)
{
global $cfg_mainsite,$cfg_multi_site;
$thumb = eregi("http://",$imgurl)?str_replace($cfg_mainsite,"",$imgurl):$imgurl;
list($thumbname,$extname) = explode(‘.’,$thumb);
$newthumb = $thumbname.’_’.$width.’_’.$height.’.’.$extname;
if(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) return $imgurl;
if(!file_exists(DEDEROOT.$newthumb))
{
include_once DEDEINC.’/image.func.php’;
if($bg==true)
{
ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
}
else
{
ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
}
}
return $cfg_multi_site==’Y’?$cfg_mainsite.$newthumb:$newthumb;
}
}
“`
2、使用CSS控制图片显示:如果缩略图不是正方形,可以在图片外边加一个框定义宽度,超出部分隐藏,这样可以防止图片变形。
“`html
<a href="[field:arcurl /]" target="_blank"><img src="[field:picname /]" border="0" width="***"></a>
“`
宽度可以自己设定,高度用CSS定义超出隐藏。
FAQs
1、如何在DedeCMS中生成按比例裁剪的缩略图?
回答:可以通过修改include/extend.func.php文件并添加自定义函数来实现,具体步骤如上所述,调用方法为[field:picname function='thumb(@me,$width,$height,$bg)'/]
,width和$height分别表示缩略图的宽度和高度,$bg表示是否用空白填补。
2、如何解决DedeCMS缩略图变形的问题?
回答:可以通过修改include/helpers/extend.helper.php文件并添加自定义函数来解决,使用CSS控制图片显示,防止图片变形,具体步骤如上所述。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1110168.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复