解决dedecms(5.6/5.7)缩略图缩放变形问题方法,我们知道,dedecms缩略图是自动提取,相当于原图的等比例缩放了,比如后台设置缩略图的尺码为:120*90即为3:2的图片,但是假如内容里的大图尺码为300*300即1:1,这样生成出来的图片就会变形,直接后台设置的缩略图大小不起作用啊,这样严重影响网站美观,本文介绍通过修改dedecms生成缩略源码方法解决定问题。打开include/image.func.php文件,该文件在dedecms5.6/5.7中所在的目录不一样,5.6中文件在/include/下,5.7中文件在/include/helpers/如果你使用的是dedecms5.7,打开目录/include/helpers/找到image.helper.php文件。如果你使用的是dedecms5.6,打开目录/include/找到image.func.php文件。dedecms5.6版image.func.php修改方法(直接替换原来方法)//[2020-11-04]:解决缩略图缩放变形问题(宽度、高度为后台设置宽高)
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;}//[2020-11-04]:解决缩略图缩放变形问题(宽度、高度为后台设置宽高)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;}dedecms5.7版image.helper.php修改方法:if (!function_exists('ImageResize')) { 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; }}猜你喜欢
- 1解决win10/win11系统windows更新清理无法删除的方法
- 2帝国cms php脚本对比主表清理副表沉余数据
- 3帝国cms 灵动标签高效调用数据表随机数据
- 4帝国CMS SQL批量修改栏目系统模型
- 5帝国cms清理数据索引表陈余,用于修复Table ‘***_ecms_news_data_’ doesn’t exist
- 6帝国cms数据索引表,用于ecms_news_index表损坏丢失或者错误
- 7LNMP一键安装包Openresty一键替换Nginx脚本
- 8 LNMP一键安装包使用Openresty替换Nginx
- 9解决Nginx(BT宝塔)使用CDN无法获取真实IP 服务器日志设置
- 10织梦下载频道download.php防盗链怎么做
联络方式:
电话:131 5329 7890
邮箱:admin@ebandao.cn
-

化妆培训SEO优化案例
A+专属形象化妆造型培训学校隶属于北京恩嘉文化传播有限公司旗下品牌,A+专属形象化妆造型培训学校是中国中央电视台官方指定化妆造型合作学校,是集化妆造型培训、服装搭配、...
-

婚纱摄影网站SEO优化案例
提拉米苏是一家专注环球旅拍的婚纱摄影机构,拥有专业的团队、丰富的行业经验、强大的硬件设施,9年间已成功服务过数千对新人,获得了客户的一致好评。提拉米苏三亚总店位于三亚...
-

夏氏儿童教育seo案例
「北京夏氏教育咨询有限公司」是一所源自香港「夏小月言语病理学(言语治疗)诊所」,是集团旗下国内第一所儿童发展中心。本中心提供专业言语、感统、心理评估与治疗;并举办培...
-

除尘器SEO优化案例
河北伟成环保科技有限公司是一家集设计、开发、制造、安装、调试、售后服务于一体的新型环保设备公司,以生产、销售大、中、小型除尘设备及除尘配件为主。我公司资金雄厚,地...
-

摄像头seo优化案例
北京宏博亚泰电气设备有限公司是专业从事工业特种防爆监控设备,集研发、生产、销售和服务于一体的工业防爆制造企业。宏博亚泰团队基于数年的防爆制造以及销售经验,于2011年...
-

机票代理网站SEO优化案例
易票天下电子商务(北京)有限公司(品牌: E票天下)成立于1999年,由中国航空运输协会、民航华北管理局批准销售民航国际、国内机票客运代理企业,是国际航空协会(IATA)、中国航空...
-

产后修复网站优化案例
北京鸿泰美业国际商贸有限公司 品牌简介:北京鸿泰美业国际商贸有限公司(品牌:纤思韵)成立于2012年04月20日,大陆办公地坐落于北京皇城根皇帝祭天、祥瑞纷呈的天坛文化圈内,是一...
-

水饺加盟网站优化案例
品牌简介:饺子馆品牌网是一个饺子行业的招商加盟网站,集饺子行业加盟资讯、加盟品牌排行榜、加盟费用、加盟利润、加盟成本、加盟优势、加盟流程以及经营管理等信息于一体,为...
-

肉蟹煲加盟网
肉蟹煲加盟网是一个肉蟹煲行业的招商加盟网站,集肉蟹煲行业加盟资讯、加盟品牌排行榜、加盟费用、加盟利润、加盟成本、加盟优势、加盟流程以及经营管理等信息于一体,为投资者...
-

万客创业国际投资有限公司
万客创业国际投资有限公司是一家集餐饮原材料加工、食品机械及智能电子技术设备研发生产、专业技术转让、品牌项目孵化、连锁经营管理、终端门店运营咨询与解决方案、行业商...
