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 相关文章推荐
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
php中常用的预定义变量小结
May 09 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
php中session与cookie的比较
Jan 27 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
PHP测试成功的邮件发送案例
Oct 26 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP类的封装与继承详解
2015/09/29 PHP
JavaScript arguments 多参传值函数
2010/10/24 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
计算机个人求职信范例
2014/01/24 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle