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

 更新时间:2014年06月12日 10:54:20   投稿:shichen2014  
这篇文章主要介绍了Codeigniter实现智能裁剪图片的方法,可以做到裁剪后不失真,尽可能保留图片主题含义。需要的朋友可以参考下

一副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中__LINE__,__FILE__,__DIR__等常用魔术常量实例讲解

    PHP中__LINE__,__FILE__,__DIR__等常用魔术常量实例讲解

    PHP 向它运行的任何脚本提供了大量的预定义常量。魔术常量准确来说并不能算是常量,常量我们在之前的文章中我们介绍到,常量被定义之后是不能被改变的。但是魔术常量是PHP预定义的一些常量,这些预定义的常量能够因为所在位置的变化而变化。
    2022-12-12
  • php 使用curl模拟登录人人(校内)网的简单实例

    php 使用curl模拟登录人人(校内)网的简单实例

    下面小编就为大家带来一篇php 使用curl模拟登录人人(校内)网的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • php中文验证码实现示例分享

    php中文验证码实现示例分享

    这篇文章主要介绍了使用php实现中文验证码,代码简单,大家可以直接使用
    2014-01-01
  • 详解laravel中blade模板带条件分页

    详解laravel中blade模板带条件分页

    Blade模板是Laravel提供一个既简单又强大的模板引擎,这篇文章主要介绍了laravel中blade模板带条件分页功能,本文通过示例代码给大家介绍了,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Yii数据读取与跳转参数传递用法实例分析

    Yii数据读取与跳转参数传递用法实例分析

    这篇文章主要介绍了Yii数据读取与跳转参数传递用法,结合实例形式分析了Yii中read()与readAll()方法的相关使用技巧,需要的朋友可以参考下
    2016-07-07
  • thinkphp中AJAX返回ajaxReturn()方法分析

    thinkphp中AJAX返回ajaxReturn()方法分析

    这篇文章主要介绍了thinkphp中AJAX返回ajaxReturn()方法,结合实例形式分析了thinkPHP中ajax操作的功能、数据返回格式以及ajaxReturn方法的简单使用技巧,需要的朋友可以参考下
    2016-12-12
  • php中重定向网页跳转方法总结案例教程

    php中重定向网页跳转方法总结案例教程

    这篇文章主要介绍了php中重定向网页跳转方法总结案例教程,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Thinkphp开发--集成极光推送

    Thinkphp开发--集成极光推送

    极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业、高效的移动消息推送服务。本文讲述如何在将极光推送合到ThinkPHP框架中,
    2017-09-09
  • ThinkPHP中类的构造函数_construct()与_initialize()的区别详解

    ThinkPHP中类的构造函数_construct()与_initialize()的区别详解

    这篇文章主要介绍了ThinkPHP中类的构造函数_construct()与_initialize()的区别,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • ThinkPHP5框架缓存查询操作分析

    ThinkPHP5框架缓存查询操作分析

    这篇文章主要介绍了ThinkPHP5框架缓存查询操作,结合实例形式分析了thinkPHP5缓存的设置、使用、查询等相关操作技巧,需要的朋友可以参考下
    2018-05-05

最新评论