位置: 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)

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

  • 荣耀30s有几种配色呢(荣耀30s高配)

    荣耀30s有几种配色呢(荣耀30s高配)

  • 小米10如何分屏(小米12如何分屏)

    小米10如何分屏(小米12如何分屏)

  • iphone12mini支持5g吗(iphone12mini支持carplay吗)

    iphone12mini支持5g吗(iphone12mini支持carplay吗)

  • 双显卡会自动切换吗(双显卡自动切换规则)

    双显卡会自动切换吗(双显卡自动切换规则)

  • 华为手机的图片怎么编辑文字(华为手机的图片怎么传到电脑)

    华为手机的图片怎么编辑文字(华为手机的图片怎么传到电脑)

  • 如何关闭抖音在线时间(如何关闭抖音在看功能)

    如何关闭抖音在线时间(如何关闭抖音在看功能)

  • oppo a8上市时间(oppoa8手机多少钱)

    oppo a8上市时间(oppoa8手机多少钱)

  • 鼠标2.4g是什么意思(鼠标2.4G是什么意思)

    鼠标2.4g是什么意思(鼠标2.4G是什么意思)

  • 低电模式和正常模式有什么区别(低电模式和正常模式哪个耗电快)

    低电模式和正常模式有什么区别(低电模式和正常模式哪个耗电快)

  • 苹果录屏存在什么位置(苹果录屏存在什么文件)

    苹果录屏存在什么位置(苹果录屏存在什么文件)

  • win7睡眠无法唤醒黑屏(w7睡眠无法唤醒)

    win7睡眠无法唤醒黑屏(w7睡眠无法唤醒)

  • 苹果6可以用5g网络吗(iphone 6可以用5g吗)

    苹果6可以用5g网络吗(iphone 6可以用5g吗)

  • 抖音发的视频怎么撤回(抖音发的视频怎么做成合集)

    抖音发的视频怎么撤回(抖音发的视频怎么做成合集)

  • airpods二代和pro区别(airpods二代和pro哪个音质好)

    airpods二代和pro区别(airpods二代和pro哪个音质好)

  • 钉钉下载手机版安卓版安装步骤(钉钉下载手机版安卓版下载安装2021)

    钉钉下载手机版安卓版安装步骤(钉钉下载手机版安卓版下载安装2021)

  • imei可以干什么(imei码有什么用重要吗)

    imei可以干什么(imei码有什么用重要吗)

  • 苹果x能不能反向充电(苹果x可不可以反向充电)

    苹果x能不能反向充电(苹果x可不可以反向充电)

  • 荣耀20青春版能用扩展内存卡吗(荣耀20青春版能升级鸿蒙系统3.0吗)

    荣耀20青春版能用扩展内存卡吗(荣耀20青春版能升级鸿蒙系统3.0吗)

  • 怎么取消相互宝分摊(怎样取消相互宝)

    怎么取消相互宝分摊(怎样取消相互宝)

  • 老人机来电铃声怎么调(老年机经典来电铃声)

    老人机来电铃声怎么调(老年机经典来电铃声)

  • 微博怎么设置虚拟位置(微博怎么设置虚拟抽奖)

    微博怎么设置虚拟位置(微博怎么设置虚拟抽奖)

  • 华为有什么系列(华为有几个系列的手机)

    华为有什么系列(华为有几个系列的手机)

  • 腾讯新闻里的视频怎么下载(腾讯新闻里的视频为啥没声音)

    腾讯新闻里的视频怎么下载(腾讯新闻里的视频为啥没声音)

  • (二) Vue3 + Element-Plus 实现动态菜单栏

    (二) Vue3 + Element-Plus 实现动态菜单栏

  • 手把手教你基于HTML、CSS搭建我的相册(上)(基于什么意思)

    手把手教你基于HTML、CSS搭建我的相册(上)(基于什么意思)

  • 未办理税务登记的个体户怎么注销营业执照
  • 哪些占用土地的行为不征收耕地占用税?
  • 有限合伙需要报增值税吗
  • 房地产开发产品科目
  • 无偿使用厂房用交税吗
  • 小规模纳税人开工程款税率是多少
  • 发票没有纳税人识别号能开吗
  • 变更了公司名称以前的发票还可以抵扣吗
  • 金税盘全额抵扣分录
  • 个人到税务局开增值税专用发票
  • 以房屋抵顶的工程叫什么
  • 税收优惠有哪些类型
  • 开具的增值税专用发票上注明的金额
  • 将承兑汇票背书怎么操作
  • 如何网上认证发票流程
  • 民非企业补贴收入要缴纳增值税会计分录怎么写?
  • 母子公司合并报表什么时候做
  • mac big sur 新功能
  • 公司回购股份有什么好处
  • 财政补助收入的账务处理
  • 非累积带薪缺勤什么时候确认
  • 什么是集成显卡长什么样
  • 支付给代理机构的手续费计入
  • 折扣额在备注栏
  • php的js
  • 高新技术企业股权转让
  • 临时存款账户销户
  • 税金及附加的含义
  • 微信小程序做ppt
  • php sid
  • 国税代开专票缴纳城建税分录
  • java微信公众号开发源码
  • vue 动态tab
  • 小企业的准备阶段是创办企业吗
  • 所得税费用怎样算出来的
  • 失控发票要补交所得税吗
  • 保险公司报销修车流程
  • 服务业增值税加计10%如何申报
  • 工资有社保是什么意思
  • 已确认收入但尚未发出商品分录
  • 公司租赁的车辆发生的费用都可以报销吗?
  • 职工福利费计提标准
  • 如何判定专利是否侵权
  • 失业保险稳岗返还计入什么科目
  • 企业购买房产怎么记账
  • 农产品收购发票怎么抵扣
  • 个人独资企业税收政策2023规定
  • 小规模增值税减免申报表怎么填
  • 结账没有原始凭证
  • 填制凭证的主要内容和注意事项
  • linux下mysql的root密码忘记的解决方法
  • windows7如何获得正版
  • linux 详解
  • Linux系统复制图片
  • ghost出现错误
  • 忘记centos密码
  • win7系统无法更改主题
  • 跑跑3s是谁
  • opengl es3.0metal
  • 深入理解新发展理念心得体会3篇
  • Eclipse开发工具安装
  • cocos3.0
  • js中函数定义有哪几种方式
  • Fragment里onActivityResult()无回调的问题
  • bat批处理删除
  • 给a标签加css的伪类
  • jQuery实现ajax调用WCF服务的方法(附带demo下载)
  • vue-cli作用
  • js中check
  • javascript Math.random()随机数函数
  • android下的单元测试要配置以下说法不正确的是
  • python 两个列表一一对应
  • javascriptwhile
  • jquery图片轮播代码
  • android8.0特性
  • android应用程序包下载安装
  • locust框架
  • 美股印花税如何收取
  • 缴款单号怎么交学费
  • 江苏几个地级市几个县级市
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设