当前位置:首页 > PHP编程文章 > ThinkPHP中图片按比例切割的代码实例

ThinkPHP实现图片按比例切割的具体方法和代码

  • 发布时间:
  • 作者:码农之家原创
  • 点击:102

这篇文章主要知识点是关于ThinkPHP、图片切割、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下相关资源

PHP、MySQL与JavaScript学习手册

本书有借助面向对象的编程基础,深入学习PHP。研究MySQL,从数据库结构到复杂查询。掌握JavaScript语言,以及带有jQuery的增强功能。调用Ajax进行后台浏览器/服务器通信等,欢迎免费下载

查看详情

ThinkPHP中图片按比例切割的代码实例

在开发中,经常会遇到图片需要按照一定比例进行缩放的情况,但是,如果一张长宽比为2:1的如果需要按照1:1的比例进行展示,那么这就意味着图片会发生变形。下面便介绍下载tp框架中如何按照比例切割并缩放图片。

  /**
   * 切割图片
   * @param $path 所要切割的图片的路径
   * @param $prefix 给切割后图片的前缀
   * @param $width 宽度所占比例
   * @param $height 高度所占比例
   * @return string 图片名称
   */
function sizeThumb($path,$prefix,$width,$height){
  import("ORG.Util.Image.ThinkImage");
  $image=new ThinkImage();
  $image->open('.'.$path);//打开缩略图进行编辑
  $imageWidth=$image->width();//获得图片尺寸
  $imageHeight=$image->height();
  $save_name=getThumb($path, $prefix);
  if (($imageHeight/$height*$width)>$imageWidth) {//按照高切割,如果宽度没有那么长,就按宽度切
    $image->thumb($imageWidth, ($imageWidth/$width*$height),THINKIMAGE_THUMB_CENTER)->save('.'.$save_name);
  }else{
    $image->thumb(($imageHeight/$height*$width), $imageHeight,THINKIMAGE_THUMB_CENTER)->save('.'.$save_name);
  }
  return $save_name;
}

在这里采用的是从中间进行截图最大比例的图片的方式,如果需要使用其他方式的话,例如从左边开始截取这样的,修改‘THINKIMAGE_THUMB_CENTER'即可,服务端采取这样的方式也并不是必要的,毕竟前端也可以处理,应当按照实际情况进行考虑。

当然,一般进行图片的存储都是存储图片的相对位置,如果生成了缩略图,我们其实也没有必要再使用一个字段保存我们的缩略图,我们只需要重写切割拼接字符串就行

  /**
   * 获取图片路径
   * @param $prefix 图片的前缀
   * @param $img_url 原图的路径
   * @return string 图片路径
   */
function getThumb($img_url,$prefix){
  $str_arr=explode('/', $img_url);
  $last=count($str_arr);
  $str_arr[$last-1]=$prefix.$str_arr[$last-1];
  $str=implode('/', $str_arr);
  return $str;
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是本次给大家分享的关于PHP的全部知识点内容总结,大家还可以在下方相关文章里找到用Zend Framework框架实现Go、 thinkphp5框架实现的自定义、 php封装单文件路径上传到、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:PHP中的日期时间处理利器Carbon实例用法

下一篇:用Zend Framework框架实现Google搜索分页实例代码

展开 +

收起 -

相关内容
写给PHP开发者的Node.js学习指南

Node.js是一套用来编写高性能网络服务器的JavaScript工具包。结合PHP和Node.js,我们可以概览整个Web服务器从起源到现在的历史过程以及其中的改变。 《 写给PHP开发者的Node.js学习指南 》的目的是

查看详情
PHP编程入门与应用

在近几年中,PHP已经发展成为世界上最为流行的Web平台,它运行在全球超过1/3的Web服务器上。PHP的发展不仅是数量上的,也是质量上的。越来越多的公司,包括全球500强榜上的公司都依靠PHP来

查看详情
PHP7内核剖析

《PHP7内核剖析》基于PHP7,深刻揭示内核原理,内容翔实,详细介绍PHP语言底层的实现,助力开发者进一步理解PHP,参与到PHP的实现中。

查看详情
深入理解php:高级技巧、面向对象与核心技术

本书是一本帮助中初级PHP程序员修炼成为高级PHP程序员的书,也是一本让PHP程序员能更快、更好地进行应用开发的书,是PHP领域经典,PHPer修炼必读书,包含大量实用案例,极具可操作性,欢迎下载阅读

查看详情
PHP开发实例大全:基础卷

《PHP开发实例大全》625经典实例及源码分析 15个应用方向 两卷共1225例 40个方向 分门别类实例一应俱全 供学习、速查、实践练习的超全参考手册 php开发实战1200例 php范例大全之全新升级。

查看详情
PHP从入门到精通

《php从入门到精通(第4版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。《php从入门到精通(第4版)》共分4篇25章,

查看详情
PHP与MySQL高性能应用开发

PHP与MySQL高性能应用开发书中不仅讲解了OOP、设计模式,也讲解了如何进行性能优化和调试。甚至,还对于语言之外的代码重构进行了讲解,本书面向的对象是有一定PHP基础,但是又想深入学习的PHP开发者,欢迎免费下载

查看详情
PHP和MySQL Web开发

在《PHP和MySQL Web开发》书中,我们将把使用PHP与MySQL的经验和心得体会毫无保留地分享给你,PHP和MySQL是目前热门的两个Web开发工具。

查看详情
Modern PHP

本书让你会学到关于应用架构、规划、数据库、安全、测试、调试和部署方面的很好实践。如果你具有PHP基础知识,想提高自己的技能,不要错过这本书

查看详情
学习笔记
网友NO.238124

PHP大文件切割上传并带进度条功能示例

本文实例讲述了PHP大文件切割上传并带进度条功能。分享给大家供大家参考,具体如下: 前面一篇介绍了PHP大文件切割上传功能,这里再来进一步讲解PHP大文件切割上传并带进度条功能。 项目结构图: 14-slice-upload-fix.html文件: !DOCTYPE htmlhtmlhead meta charset="utf-8" meta http-equiv="X-UA-Compatible" content="IE=edge" title大文件切割上传带进度条/title link rel="stylesheet" href=""scriptvar xhr = new XMLHttpRequest();//xhr对象var clock = null;function selfile(){ clock = window.setInterval(sendfile,1000);}var sendfile = (function (){ const LENGTH = 1024 * 1024 * 10;//每次上传的大小 var start = 0;//每次上传的开始字节 var end = start + LENGTH;//每次上传的结尾字节 var sending = false;//表示是否正在上传 var fd = null;//创建表单数据对象 var blob = null;//二进制对象 var percent = 0; return (function (){ //如果有块正在上传,则不进行上传 if(sending……

网友NO.483286

PHP大文件切割上传功能实例分析

本文实例讲述了PHP大文件切割上传功能。分享给大家供大家参考,具体如下: 大家都知道php上传文件有限制,如果没有修改过php.ini文件的话,默认的上传大小限制为2M,那么该如何上传大文件了,比如说上传一个1G多的大文件,可以使用大文件切割上传的方式来解决。 何为大文件切割上传? 原理:利用HTML5的新特性,将文件内容切割成分段的二进制信息,然后每次向服务器上传一段,而服务器,只需要把我们每次上传的二进制信息整合存储到一个文件中,那么最后这个文件就是所上传的文件。 由于php.ini默认的上传大小为2M,如果每批都上传2M,我测试的时候时间比较长,这里我将其限制大小该为20M,最大post数据为28M,便于测试。如果实际开发中不能修改其参数,则每批上传的数据不能超过最大限制。 post_max_size = 28Mupload_max_filesize = 20M JavaScript中的Fi……

网友NO.259346

PHP 中使用explode()函数切割字符串为数组的示例

explode()函数的作用:使用一个字符串分割另一个字符串,打散为数组。 例如: 字符串 $pizza = "第1 第2 第3 第4 第5 第6"; 根据空格分割后: $pieces = explode(” “, $pizza); $pieces是分割后的数组,我们打印出来看下 ?php$pizza = "第1 第2 第3 第4 第5 第6";$pieces = explode(" ", $pizza);foreach($pieces as $val){ echo $val."br";}piece1piece2piece3piece4piece5piece6 例子2:根据逗号分割 ?php$string = '今天太阳很大,我们都没出去。中午我们再食堂吃饭,都很开心!';$string_arr = explode(",", $string );foreach($string_arr as $val){ echo $val."br";} 输出结果: 今天太阳很大 我们都没出去。中午我们再食堂吃饭 都很开心! 以上所述是小编给大家介绍的PHP 中使用explode()函数切割字符串为数组的示例,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的! ……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757