Codeigniter实现智能裁剪图片的方法


Posted in PHP onJune 12, 2014

一副1024*768大小的图片,裁剪到240*240大小,裁剪后不失真,尽可能保留图片主题含义。

我使用到的方法:

1. 先将图片等比例缩略到可以裁剪的大小;

如果是宽幅图片,则按高度等比例缩放到高度 = 240px,窄幅图片(高度大于宽度)则按宽度等比例缩放;

2. 按长宽格式居中裁剪;

保留缩略后的图片中间部分;

$this->load->library('image_lib');            
    list($width, $height) = getimagesize("upload/123.jpg");
    $config['image_library'] = 'gd2';
    $config['source_image'] = 'upload/123.jpg';
    $config['maintain_ratio'] = TRUE;
    if($width >= $height)
    {
        $config['master_dim'] = 'height';
    }else{
        $config['master_dim'] = 'width';
    }
    $config['width'] = 240;
    $config['height'] = 240;
    $this->image_lib->initialize($config);
    $this->image_lib->resize();    $config['maintain_ratio'] = FALSE;
    if($width >= $height)
    {
        $config['x_axis'] = floor(($width * 240 / $height - 240)/2);
    }else{
        $config['y_axis'] = floor(($height * 240 / $width - 240)/2);
    }
    $this->image_lib->initialize($config);
    $this->image_lib->crop();
PHP 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
PHP4与PHP5的时间格式问题
Feb 17 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 PHP
PHP小教程之实现链表
Jun 09 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 #PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 #PHP
Codeigniter生成Excel文档的简单方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 #PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 #PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 #PHP
You might like
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
php a simple smtp class
2007/11/26 PHP
使用php来实现网络服务
2009/09/15 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
python数据分析:关键字提取方式
2020/02/24 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
交通法规咨询中心工作职责
2013/11/27 职场文书
工程建设实施方案
2014/03/14 职场文书
出纳担保书范文
2014/04/02 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
会计专业求职信范文
2015/03/19 职场文书
毕业设计致谢词
2015/05/14 职场文书
致青春观后感
2015/06/09 职场文书
付款证明格式范文
2015/06/19 职场文书
优秀新员工事迹材料
2019/05/13 职场文书