欢迎访问融科网络!我们专注于郑州网站建设郑州网站制作郑州网站设计郑州做网站等相关服务!
营销之道 干货分享
了解企业新动态,分享前沿的营销推广干货,成长路上,我们携手同行

编程代码

织梦缩略图终极解决方案(不变形、居中裁剪)的三种办法

标签: 作者:融科网络 | 点击:
05

Nov
2019

导语
刚才我在做一个织梦站的时候出现了一个问题就是不管怎样弄自动生成的缩略图文件在列表里都是失真的,变形很严重非常影响美观尤其是那种图片非常长的或者是非常宽的主要元素
 

刚才我在做一个织梦站的时候出现了一个问题就是不管怎样弄自动生成的缩略图文件在列表里都是失真的,变形很严重非常影响美观尤其是那种图片非常长的或者是非常宽的主要元素不集中的图片来说简直就是灾难。

好了,下面的办法我们都用这张图片来演示一下吧我们暂且叫它原图:

织梦缩略图终极解决方案(不变形、居中裁剪)的三种办法

第一种办法:原生缩略图不用动不用改生成的缩略图 第二种办法:大众办法缩略图

操作流程:打开网站根目录下的include/helpers/文件夹中的“image.helper.php”文件。

查找如下代码:

$srcW=ImageSX($im); $srcH=ImageSY($im); if($srcW<=$toW && $srcH<=$toH ) return TRUE; $toWH=$toW/$toH; $srcWH=$srcW/$srcH; if($toWH<=$srcWH){ $ftoW=$toW; $ftoH=$ftoW*($srcH/$srcW); } else { $ftoH=$toH; $ftoW=$ftoH*($srcW/$srcH); } 把上面的这些代码全部替换成下面的代码: $srcW=ImageSX($im); $srcH=ImageSY($im); if($srcW<=$toW && $srcH<=$toH ) return TRUE; $toWH=$toW/$toH; $srcWH=$srcW/$srcH; $ftoH=$toH;$ftoW=$toW; if ($toWH<=$srcWH) { $src_Y = 0; $src_X = ($srcW-$srcH*$toWH)/2; $srcW = $srcH*$toWH; } else { $src_X = 0; $src_Y = ($srcH-$srcW/$toWH)/2; $srcH = $srcW/$toWH; }  

把上面的这些代码全部替换成下面的代码:

$srcW=ImageSX($im); $srcH=ImageSY($im); if($srcW<=$toW && $srcH<=$toH ) return TRUE; $toWH=$toW/$toH; $srcWH=$srcW/$srcH; $ftoH=$toH;$ftoW=$toW; if ($toWH<=$srcWH) { $src_Y = 0; $src_X = ($srcW-$srcH*$toWH)/2; $srcW = $srcH*$toWH; } else { $src_X = 0; $src_Y = ($srcH-$srcW/$toWH)/2; $srcH = $srcW/$toWH; }  

上面的办法是超过缩略图大小的部分就进行裁剪如果说一张图片高是1000像素但只有中间有点20像素的图片则裁剪出来的缩略图就是空白,它剪的是左上角的部分,原理是把一张原图从左上角裁剪出织梦系统设置的高宽后其它的内容全部扔掉。可以对比本文开头的“原图”和“第二种办法”缩略图这两张图片。

第三种办法(强烈推荐):终极长宽高等比例自适应裁剪缩略图

操作流程:同办法二打开网站根目录下的include/helpers/文件夹中的“image.helper.php”文件。查找“缩图片自动生成函数,来源支持bmp、gif、jpg、png”

看到了吧,在这些注释的下面从以下代码开始:

if ( ! function_exists('ImageResize'))  

到“获得GD的版本”这些注释结束的所有内容替换成下面的代码(注意是除注释外全部替换哦):

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,90); 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; } }  
郑州融科网络专注于企业网站建设、网站制作、高端网站设计,郑州荥阳、上街做网站就找融科网络!
本文章网址:http://www.ppssdd.com/code/14824.html。转载请保留出处,谢谢合作!

全网(营销型+响应式)专业定制

快速搭建高询盘+营销独立站

微信扫一扫 添加微信

推荐分享,免费SEO诊断

扫码加好友,即送价值1880元的SEO优化教程

(网站没排名,轻松让关键词上首页!专注H5企业建站+网站优化推广)

上一篇:DedeCMS筛选伪静态跳转手机端JS

下一篇: 织梦系统自带采集htpps网站问题修复

  • 网站建设咨询
  • 网站建设案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 151-3895-5886
  • 品牌网站建设定制
  • 营销型网站建设定制