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
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
php输出xml属性的方法
Mar 19 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
通过php动态传数据到highcharts
Apr 05 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
php 多继承的几种常见实现方法示例
Nov 18 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
jQuery使用手册之一
2007/03/24 Javascript
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
python中enumerate函数用法实例分析
2015/05/20 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
学院领导推荐信
2013/10/30 职场文书
企业文化理念标语
2014/06/10 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android
PyTorch device与cuda.device用法
2022/04/03 Python