位置: IT常识 - 正文

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

编辑:rootadmin

推荐整理分享织梦缩略图终极解决办法(不变形、居中裁剪)的三种方法(织梦图片要放哪里),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:织梦栏目内容不显示,织梦使用教程,织梦不能自动提取缩略图,织梦栏目内容不显示,织梦底部广告怎么在中间,织梦图片要放哪里,织梦不能自动提取缩略图,织梦不能自动提取缩略图,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

操作流程:打开网站根目录下的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;}}

为了避免出错下面给一个示例:

/*** 缩图片自动生成函数,来源支持bmp、gif、jpg、png* 但生成的小图只用jpg或png格式** @access public* @param string $srcFile 图片路径* @param string $toW 转换到的宽度* @param string $toH 转换到的高度* @param string $toFile 输出文件到* @return string*/(注意哦替换的是这里全部的内容哦很长的一几段内容)/*** 获得GD的版本** @access public* @return int*/

好了到此保存上传然后试着生成一个缩略图看看吧。到目前为止第三种方法是我见过最好的了它最大的特点就是居中裁剪这样无论如何也不会变形了,而且一般图片的主要像素都是从中间开始的,裁剪出来的缩略图和原图的中间部分都是一模一样的只是把原图中间变小了。

免责

本文链接地址:https://www.jiuchutong.com/zhishi/313131.html 转载请保留说明!

上一篇:Go设计模式学习准备——下载bilibili合集视频(设计模式golang)

下一篇:织梦最新发表的文章标题显示红色字体(织梦官方网站)

  • 空调不制热的原因和维修方法(空调不制热的原因)(空调不制热的原因及解决办法格力)

    空调不制热的原因和维修方法(空调不制热的原因)(空调不制热的原因及解决办法格力)

  • 惠普510打印机怎么连接wifi(惠普510打印机怎样清洗喷头)

    惠普510打印机怎么连接wifi(惠普510打印机怎样清洗喷头)

  • 快手怎么把快币兑换成现金(快手怎么把快币退回来)

    快手怎么把快币兑换成现金(快手怎么把快币退回来)

  • 抖音封永久解封有办法吗(抖音永久封禁解封了还能申诉回来吗)

    抖音封永久解封有办法吗(抖音永久封禁解封了还能申诉回来吗)

  • ios清理缓存app(ios清理缓存app哪个好)

    ios清理缓存app(ios清理缓存app哪个好)

  • 淘宝申请退款钱打到哪(淘宝申请退款钱到账了还要退货吗)

    淘宝申请退款钱打到哪(淘宝申请退款钱到账了还要退货吗)

  • 抖音播放量是人数还是次数(抖音播放量是人数吗)

    抖音播放量是人数还是次数(抖音播放量是人数吗)

  • oppoa92s是闪充吗(oppoa92s是快充吗)

    oppoa92s是闪充吗(oppoa92s是快充吗)

  • 电容麦声音受潮表现(电容麦受潮后影响音质吗)

    电容麦声音受潮表现(电容麦受潮后影响音质吗)

  • iphone控制中心打不开(iphone控制中心没反应)

    iphone控制中心打不开(iphone控制中心没反应)

  • 充电接口类型(oppo手机充电接口类型)

    充电接口类型(oppo手机充电接口类型)

  • 支付宝禁言解除方法(支付宝如何解除禁言)

    支付宝禁言解除方法(支付宝如何解除禁言)

  • ppt折线图怎么改数据(ppt折线图怎么改横纵坐标轴)

    ppt折线图怎么改数据(ppt折线图怎么改横纵坐标轴)

  • 华为snkrs出错(华为snkrs一直显示错误)

    华为snkrs出错(华为snkrs一直显示错误)

  • oppor9能不能设置自动关机(oppo r9设置)

    oppor9能不能设置自动关机(oppo r9设置)

  • 加淘友会被看到什么(加淘友会看到真实姓名怎么修改隐藏)

    加淘友会被看到什么(加淘友会看到真实姓名怎么修改隐藏)

  • docker的真正作用(docker的作用)

    docker的真正作用(docker的作用)

  • 苹果xsmax拍照怎么拍全屏(苹果xsmax拍照怎么带水印)

    苹果xsmax拍照怎么拍全屏(苹果xsmax拍照怎么带水印)

  • 如何调整纸张大小(如何调整纸张大小为A3)

    如何调整纸张大小(如何调整纸张大小为A3)

  • 如何在目录前加封面(如何在目录前加序号)

    如何在目录前加封面(如何在目录前加序号)

  • 小米5屏幕是oled吗(小米5屏幕是lcd屏供应商)

    小米5屏幕是oled吗(小米5屏幕是lcd屏供应商)

  • 抖音撤回消息对方有提示吗(抖音撤回消息对方有发送记录吗)

    抖音撤回消息对方有提示吗(抖音撤回消息对方有发送记录吗)

  • 如何给网页添加icon图标?(如何给网页添加水印)

    如何给网页添加icon图标?(如何给网页添加水印)

  • Win11安装不了显卡驱动怎么办?Win11安装不了显卡驱动的解决方法(win11安装不显示wifi)

    Win11安装不了显卡驱动怎么办?Win11安装不了显卡驱动的解决方法(win11安装不显示wifi)

  • antv/g6基本使用教程(antvl7)

    antv/g6基本使用教程(antvl7)

  • 税捷财税官网
  • 应付销售方代垫的运费计入什么科目
  • 工会建账选择哪个科目好
  • 供暖企业收取的容量热价费怎么计入收入
  • 做税审报告费如何做分录?
  • 出口发票税率是怎么算的
  • 企业破产清算怎么做账务处理实务工作
  • 非居民企业所得税源泉扣缴管理暂行办法
  • 哪些员工福利可以让企业合理避税
  • 关于金融行业的经典句子
  • 企业案例描述
  • 小规模纳税人要做固定资产吗
  • 个税少报有什么后果
  • 先缴纳社保还是先扣税
  • 退货入库流程图
  • 委托贷款合同效力
  • 职工教育经费不提可以吗
  • 未分配利润怎么处理
  • 金税盘申请电子发票成功后怎样手工导入
  • 微信订阅项目
  • PHP 中dirname(_file_)讲解
  • 企业自持商品住房定义
  • 分公司收到总公司利润分录怎么写
  • uniapp示例
  • 非货币性资产对外捐赠企业所得税处理
  • session for
  • yii框架安装
  • php web socket
  • 企业预缴所得税怎么算
  • php二分查找算法两种方法
  • mongodb 安装
  • sqlite3 top的查询及limit语法介绍
  • 工程开票金额大于结算金额怎么处理
  • 资本性支出与资本性支出(基本建设)的区别
  • 床垫发票
  • 医院交什么保险
  • 企业的其他应付款
  • 企业所得税该什么科目
  • 不抵扣勾选的发票在哪里查看
  • 有限合伙企业属于企业法人还是非法人企业
  • 4s店开的维修发票怎么开
  • 其他应收款和其他应付款可以通用吗
  • 一般纳税人应如何报税
  • 小规模纳税人收普票和专票有什么区别
  • 税局预缴增值税选错月期
  • 其他收益结转到什么科目
  • 事业单位有奖励吗
  • 小企业营业外支出的内容
  • 逐步测试法计算内含报酬率
  • 超市的进场费怎么入会计科目
  • 库存商品发出计价测试
  • 固定资产的入账时间应该是什么时间
  • 预付账款为什么不是金融资产
  • 旅游业小规模纳税人税率是多少
  • 申报表怎么更正
  • 工程物资属于存货还是固定资产
  • sql server错误和使用情况报告
  • redhat server
  • win8链接wi-fi
  • win10 Realtek HD Audio更新失败怎么办 win10关闭UAC解决Realtek HD Audio更新失败
  • linux使用cp
  • WeatherEye.exe - WeatherEye 是什么进程
  • window怎么操作
  • 升级电脑win10系统
  • image driver
  • windows7笔记本无线网络连接
  • 装了linux后windows没有了
  • android xui
  • 网页设计布局设计
  • perl @inc
  • python如何判断一个变量的类型
  • Android UI之LinearLayout(线性布局)
  • 使用node
  • js随机生成6位数
  • 菜鸟 javascript
  • 在web项目中引入什么
  • JS backgroundImage控制
  • js文件保存
  • 税务稽查为什么不问证人
  • 什么叫以物易物
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设