CodeIgniter图像处理类的深入解析


Posted in PHP onJune 17, 2013

image.php

<?php
class Image extends Controller {
    function Image()
    {
    parent::Controller();   
    $this->load->library('image_lib');   
    }    //缩略图
    function index(){
        echo '* 调整图像大小 <br>
            * 创建缩略图 <br>
            * 图像裁剪 <br>
            * 图像旋转 <br>
            * 添加图像水印 <br>
        ';
    }
    //缩略图
    function resize(){
    /*
    注意
    当$config['create_thumb']等于FALSE并且$config['new_image']没有指定时,会调整原图的大小
    当$config['create_thumb']等于TRUE并且$config['new_image']没有指定时,生成文件名为(原图名 _thumb.扩展名)
    当$config['create_thumb']等于FALSE并且$config['new_image']指定时,生成文件名为$config['new_image']的值
    当$config['create_thumb']等于TRUE并且$config['new_image']指定时,生成文件名为(原图名 _thumb.扩展名)
    */
        $config['image_library'] = 'gd2';//(必须)设置图像库
        $config['source_image'] = 'ptjsite/upload/55002.jpg';//(必须)设置原始图像的名字/路径
        $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在
        $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大
        $config['new_image'] = 'ptjsite/upload/resize004.gif';//设置图像的目标名/路径。
        $config['width'] = 575;//(必须)设置你想要得图像宽度。
        $config['height'] = 350;//(必须)设置你想要得图像高度
        $config['create_thumb'] = TRUE;//让图像处理函数产生一个预览图像(将_thumb插入文件扩展名之前)
        $config['thumb_marker'] = '_thumb';//指定预览图像的标示。它将在被插入文件扩展名之前。例如,mypic.jpg 将会变成 mypic_thumb.jpg
        $config['maintain_ratio'] = TRUE;//维持比例
        $config['master_dim'] = 'auto';//auto, width, height 指定主轴线
        $this->image_lib->initialize($config);
        if (!$this->image_lib->resize())
        {
            echo $this->image_lib->display_errors();
        }else{
            echo "成功的";
        }
    }
    //图像裁剪
    function crop(){   
        $config['image_library'] = 'gd2';//设置图像库
        $config['source_image'] = 'ptjsite/upload/004.gif';//(必须)设置原始图像的名字/路径
        $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在
        $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大
        $config['new_image'] = 'ptjsite/upload/crop004.gif';//(必须)设置图像的目标名/路径。
        $config['width'] = 75;//(必须)设置你想要得图像宽度。
        $config['height'] = 50;//(必须)设置你想要得图像高度
        $config['maintain_ratio'] = TRUE;//维持比例
        $config['x_axis'] = '30';//(必须)从左边取的像素值
        $config['y_axis'] = '40';//(必须)从头部取的像素值
        $this->image_lib->initialize($config);
        if (!$this->image_lib->crop())
        {
            echo $this->image_lib->display_errors();
        }else{
            echo "成功的";
        }
    }
   
    //图像旋转
    function rotate(){   
        $config['image_library'] = 'gd2';//(必须)设置图像库
        $config['source_image'] = 'ptjsite/upload/001.jpg';//(必须)设置原始图像的名字/路径
        $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在
        $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大
        $config['new_image'] = 'ptjsite/upload/rotate001.jpg';//设置图像的目标名/路径
        $config['rotation_angle'] = 'vrt';//有5个旋转选项 逆时针90 180 270 度 vrt 竖向翻转 hor 横向翻转   
        $this->image_lib->initialize($config);
        if ( ! $this->image_lib->rotate())
        {
            echo $this->image_lib->display_errors();
        }
    }
    //文字水印
    function watermark(){
        $config['image_library'] = 'gd2';//(必须)设置图像库
        $config['source_image'] = 'ptjsite/upload/003.jpg';//(必须)设置原图像的名字和路径. 路径必须是相对或绝对路径,但不能是URL.
        $config['dynamic_output'] = FALSE;//TRUE 动态的存在(直接向浏览器中以输出图像),FALSE 写入硬盘
        $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大
        $config['new_image'] = 'ptjsite/upload/crop004.gif';//设置图像的目标名/路径。
        $config['wm_type'] = 'overlay';//(必须)设置想要使用的水印处理类型(text, overlay)
        $config['wm_padding'] = '5';//图像相对位置(单位像素)
        $config['wm_vrt_alignment'] = 'middle';//竖轴位置 top, middle, bottom
        $config['wm_hor_alignment'] = 'center';//横轴位置 left, center, right
        $config['wm_vrt_offset'] = '0';//指定一个垂直偏移量(以像素为单位)
        $config['wm_hor_offset'] = '0';//指定一个横向偏移量(以像素为单位)
        /* 文字水印参数设置 */
        $config['wm_text'] = 'Copyright 2008 - John Doe';//(必须)水印的文字内容
        $config['wm_font_path'] = 'ptj_system/fonts/type-ra.ttf';//字体名字和路径
        $config['wm_font_size'] = '16';//(必须)文字大小
        $config['wm_font_color'] = 'FF0000';//(必须)文字颜色,十六进制数
        $config['wm_shadow_color'] = 'FF0000';//投影颜色,十六进制数
        $config['wm_shadow_distance'] = '3';//字体和投影距离(单位像素)。
        /* 图像水印参数设置 */
        /*
        $config['wm_overlay_path'] = 'ptjsite/upload/overlay.png';//水印图像的名字和路径
        $config['wm_opacity'] = '50';//水印图像的透明度
        $config['wm_x_transp'] = '4';//水印图像通道
        $config['wm_y_transp'] = '4';//水印图像通道
        */
        $this->image_lib->initialize($config);
        $this->image_lib->watermark();
    }
    //图像水印
    function watermark2(){
        $config['image_library'] = 'gd2';//(必须)设置图像库
        $config['source_image'] = 'ptjsite/upload/003.jpg';//(必须)设置原图像的名字和路径. 路径必须是相对或绝对路径,但不能是URL.
        $config['dynamic_output'] = FALSE;//TRUE 动态的存在(直接向浏览器中以输出图像),FALSE 写入硬盘
        $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大
        $config['new_image'] = 'ptjsite/upload/crop004.gif';//设置图像的目标名/路径。
        $config['wm_type'] = 'overlay';//(必须)设置想要使用的水印处理类型(text, overlay)
        $config['wm_padding'] = '5';//图像相对位置(单位像素)
        $config['wm_vrt_alignment'] = 'middle';//竖轴位置 top, middle, bottom
        $config['wm_hor_alignment'] = 'center';//横轴位置 left, center, right
        $config['wm_vrt_offset'] = '0';//指定一个垂直偏移量(以像素为单位)
        $config['wm_hor_offset'] = '0';//指定一个横向偏移量(以像素为单位)
        /* 文字水印参数设置 */
        /*
        $config['wm_text'] = 'Copyright 2008 - John Doe';//(必须)水印的文字内容
        $config['wm_font_path'] = 'ptj_system/fonts/type-ra.ttf';//字体名字和路径
        $config['wm_font_size'] = '16';//(必须)文字大小
        $config['wm_font_color'] = 'FF0000';//(必须)文字颜色,十六进制数
        $config['wm_shadow_color'] = 'FF0000';//投影颜色,十六进制数
        $config['wm_shadow_distance'] = '3';//字体和投影距离(单位像素)。
        */
        /* 图像水印参数设置 */
        $config['wm_overlay_path'] = 'ptjsite/upload/overlay.png';//水印图像的名字和路径
        $config['wm_opacity'] = '50';//水印图像的透明度
        $config['wm_x_transp'] = '4';//水印图像通道
        $config['wm_y_transp'] = '4';//水印图像通道
        $this->image_lib->initialize($config);
        $this->image_lib->watermark();
    }
}
?>

PHP 相关文章推荐
PHP连接access数据库
Mar 27 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
php常用正则函数实例小结
Dec 29 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 #PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 #PHP
php之CodeIgniter学习笔记
Jun 17 #PHP
apache配置虚拟主机的方法详解
Jun 17 #PHP
php unset全局变量运用问题的深入解析
Jun 17 #PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 #PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 #PHP
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Python中实现三目运算的方法
2015/06/21 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
恶意软件的定义
2014/11/12 面试题
支部书记四风问题自我剖析材料
2014/09/29 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python