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

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

  • 小米手机激活时间怎么看(小米手机激活时间查询不到)

    小米手机激活时间怎么看(小米手机激活时间查询不到)

  • 苹果手机延长手机亮屏时间在哪里设置(iphone延长锁屏时间在哪里设置)

    苹果手机延长手机亮屏时间在哪里设置(iphone延长锁屏时间在哪里设置)

  • 微信实名认证更改后零钱还在吗(微信实名认证更换后,警方可以查到原来的实名认证吗?)

    微信实名认证更改后零钱还在吗(微信实名认证更换后,警方可以查到原来的实名认证吗?)

  • 华为nova7第一次充电充多久(华为nova7第一次充电多长时间)

    华为nova7第一次充电充多久(华为nova7第一次充电多长时间)

  • qq群作业修改以后会提示吗(qq群作业提交的文件怎么修改)

    qq群作业修改以后会提示吗(qq群作业提交的文件怎么修改)

  • 路由器连网线吗(路由器连网线吗怎么连)

    路由器连网线吗(路由器连网线吗怎么连)

  • 电脑只显示c盘其他的磁盘都不见了(电脑只显示C盘和G盘)

    电脑只显示c盘其他的磁盘都不见了(电脑只显示C盘和G盘)

  • 苹果四微信不兼容怎么办(苹果手机微信不兼容解决办法)

    苹果四微信不兼容怎么办(苹果手机微信不兼容解决办法)

  • 网站卡顿是什么原因(网站总是卡怎么办)

    网站卡顿是什么原因(网站总是卡怎么办)

  • 爱奇艺怎么2倍速(爱奇艺怎么2倍速播放)

    爱奇艺怎么2倍速(爱奇艺怎么2倍速播放)

  • 长虹电视怎么下载软件(长虹电视怎么下载电视家)

    长虹电视怎么下载软件(长虹电视怎么下载电视家)

  • wim10如何远程电脑控制(win10怎样远程电脑)

    wim10如何远程电脑控制(win10怎样远程电脑)

  • 华为WatchGT2公交卡怎么迁出(华为gt2手表坐公交)

    华为WatchGT2公交卡怎么迁出(华为gt2手表坐公交)

  • 闲鱼退款申请怎么处理(闲鱼退款申请怎么申请)

    闲鱼退款申请怎么处理(闲鱼退款申请怎么申请)

  • 支付宝哈喽单车扫码打不开怎么回事(支付宝哈喽单车怎么结束订单)

    支付宝哈喽单车扫码打不开怎么回事(支付宝哈喽单车怎么结束订单)

  • geforce可以卸载吗(geforce卸载对电脑有影响吗)

    geforce可以卸载吗(geforce卸载对电脑有影响吗)

  • 苹果xr需要更新系统吗(苹果xr需要更新15.5吗)

    苹果xr需要更新系统吗(苹果xr需要更新15.5吗)

  • 手机爱奇艺预约在哪里(爱奇艺的预约)

    手机爱奇艺预约在哪里(爱奇艺的预约)

  • 闲鱼删除对话找回(闲鱼不小心删除了对话)

    闲鱼删除对话找回(闲鱼不小心删除了对话)

  • 夏普电视怎么连接手机(夏普电视怎么连接机顶盒)

    夏普电视怎么连接手机(夏普电视怎么连接机顶盒)

  • Win10 20H2 KB5001391补丁包更新内容汇总

    Win10 20H2 KB5001391补丁包更新内容汇总

  • 爆改YOLOV7的detect.py制作成API接口供其他python程序调用(超低延时)(yolov5怎么改进)

    爆改YOLOV7的detect.py制作成API接口供其他python程序调用(超低延时)(yolov5怎么改进)

  • AttributeError: cannot assign module before Module.__init__() call

    AttributeError: cannot assign module before Module.__init__() call

  • 应税所得率表
  • 跨年增票能开红冲吗?
  • 契税减免税特殊规定有哪些?
  • 各行业的税负率表2022
  • 减少实收资本需要缴纳什么税
  • 待摊费用和无形资产摊销
  • 收到货款发货了没开发票怎么入账
  • 企业年报股东及出资信息要怎么填写
  • 公司报销房租还能扣税吗
  • 经营许可证要交税吗
  • 工会经费0.008申报
  • 收到生育津贴会计分录怎么做
  • 税收优惠有哪些类型
  • 固定资产的建造成本包括
  • 接受税务稽查补缴所得税账务处理怎么做?
  • 成品油增值税抵减政策
  • 平行登记要求总账
  • 金蝶软件开发服务费入什么科目?
  • 购车税务发票
  • 增值税普票怎么验证真伪
  • 高杠杆资金是什么意思
  • 暂估成本一直拿不到发票
  • 环保税优惠问题
  • 增值税小规模纳税人减免增值税政策
  • 2023增值税免税政策
  • 税控服务费政策
  • 分配的水电费属于什么会计要素
  • linux配置多网卡设置
  • 材料成本差异如何理解
  • 建筑企业取得发票难
  • 语音处理算法
  • 如何使用openAI总结小说内容
  • Win11系统自带输入法怎么卸载
  • mysqldump 导出数据
  • php远程调用
  • php类和对象的关系
  • 国内php大牛
  • 确认收入的五个原则
  • stat命令的作用
  • 铁路运输企业受托代征 印花税
  • 融资购买固定资产账务处理
  • sql server 2008 备份
  • 直接计入所有者权益的利得和损失,影响当期损益
  • 如何免费用别人家的wifi
  • 个人转让房产税率
  • 企业哪些账户可以取现金
  • 一般纳税人季报怎么填
  • sqlldr并发
  • 报销费用余额退回
  • 支付返利计入什么科目
  • 信用证保证金的适用范围
  • 怎么理解核销
  • 公司网站维护费用计哪个科目
  • 个人付款开了公章怎么办
  • 服务企业的举措
  • 升级尝鲜
  • sqlserver 版本号
  • 最新版手机
  • windows开机提示无法登录到你的账户
  • win7一键升级到win10
  • windows2008防火墙允许远程桌面
  • ubuntu14.04安装ssh服务
  • linux file-nr
  • 如何查看文件系统
  • window web
  • 制作winxp启动u盘和安装盘
  • centos7rz
  • xp系统怎样阻止脱机窗口弹出
  • 更新win10后扬声器无声音
  • pygame有哪些函数
  • bootstrap技术
  • 详解16型人格
  • 打开指定文件夹命令
  • unity f
  • jquery自动加载的方法
  • 国家税务总局江西省国家税务局
  • 计算当期免抵退税额
  • 税务系统个人业务自传
  • 江苏省常熟市归哪管
  • 税控机发票打印机怎么用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设