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 COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
Redis构建分布式锁
Mar 28 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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日期处理函数 整型日期格式
2011/01/12 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python截取两个单词之间的内容方法
2018/12/25 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
pycharm实现猜数游戏
2020/12/07 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
init进程的作用
2015/08/20 面试题
学习自我鉴定
2014/02/01 职场文书
优秀幼教自荐信
2014/02/03 职场文书
刑事和解协议书范本
2014/11/19 职场文书
婚内分居协议书范文
2014/11/26 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
教师素质教育心得体会
2016/01/19 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Python&Matlab实现樱花的绘制
2022/04/07 Python