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

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

  • 哪些情况需要提高警惕小心毒品
  • 增值税额的计算公式写销售额除以1.13*0.13对吗
  • 物业公司是小规模纳税人税率是多少
  • 个税专项附加扣除是每个月扣还是按年计算
  • 仓储费和仓储服务费的区别
  • 营改增后装修材料如何抵扣?
  • 税后扣税
  • 收回过去已确认的坏账
  • 视同销售应付福利费账务处理是怎样的?
  • 买标书怎么做分录
  • 案例分析关于团员青年的思想困惑疏导和成长问题释疑
  • 兼职教师个人所得税起征点
  • 股票回购会计处理
  • 购买的样品怎么做账
  • 一般纳税人出售不动产增值税税率是多少
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 去银行补充企业信息流程
  • 预付卡发给员工如何入账
  • 以前年度费用如何列支
  • window10的帮助与支持窗口在哪
  • 在window10中可以使用什么窗口
  • 五险会计分录会计处理
  • 设置系统自动更新一般通过什么窗口
  • cpu调度schedutil好吗
  • 交易性金融资产属于什么科目
  • 电脑睡眠唤醒教程视频
  • 舍夫沙万的蓝色是什么意思
  • PHP:imagestringup()的用法_GD库图像处理函数
  • 北极野生动物
  • 出口免抵增值税是什么意思
  • php添加
  • vue实现文件上传和下载
  • 管理费用税金怎么算
  • 固定资产处置营业外支出
  • python django做网页
  • page_sql
  • 固定资产年限折旧方法
  • 应收账款收不回来做坏账处理分录
  • 准予从销项税额中扣除的有哪些
  • 职工教育经费包括住宿费吗
  • 租房合同违约金200%合理吗
  • 固定资产盘盈属于其他业务收入吗
  • 民办非企业收到政府拨款分录
  • 会计报表编制基本要求
  • sqlserver2012无法新建表
  • 企业管理费用科目有哪些
  • 生产成本科目期末怎么结转
  • 备用金怎么回冲
  • 医保指的是啥
  • 预提费用在汇算清缴时调整
  • 公司厨房用具
  • 餐饮行业采购
  • 材料按计划成本计价下,外购材料结算
  • 收不回来的应收账款
  • 所得税汇算清缴前取得跨年发票
  • 股权激励费用如何计提
  • 最低标准买社保公积金个人缴纳多少钱
  • 员工办理健康证费用由谁支付
  • 计提房产税需要附凭证吗
  • SQL Server 2012 sa用户登录错误18456的解决方法
  • 建立索引mysql
  • intel x86 arm
  • xp系统怎么打开开机启动项
  • 苹果电脑的重新启动在哪里
  • linux中文件系统
  • jquery easyui开发指南
  • js函数重名
  • dos命令查看磁盘分区
  • 发送邮件python
  • 使用jquery mobile时,jquery文件必须
  • python编程数字
  • 如何把多个文本文档合并成一个且分行不重叠
  • under code
  • js实现类
  • ApplicationId与PackageName的区别
  • 江西税务登记查询系统
  • 教育培训行业的发展前景
  • 电信业务发票
  • 国家税务总局辽宁省税务局
  • 财税2016年47号文件中的劳务派遣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设