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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
快速开发一个PHP扩展图文教程
Dec 12 PHP
PHP 读取文件的正确方法
Apr 29 PHP
php笔记之常用文件操作
Oct 12 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
详解PHP数组赋值方法
Nov 07 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
Laravel find in set排序实例
Oct 09 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP中的替代语法简介
2014/08/22 PHP
php查询ip所在地的方法
2014/12/05 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
jquery 输入框数字限制插件
2009/11/10 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
外国人聘用意向书
2014/04/01 职场文书