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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
深入解析PHP的Yii框架中的event事件机制
Mar 17 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
WAF的正确bypass
Jan 05 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP 正则表达式常用函数
2014/08/17 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
python中as用法实例分析
2015/04/30 Python
Python中is与==判断的区别
2017/03/28 Python
python生成式的send()方法(详解)
2017/05/08 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python shelve模块实现解析
2019/08/28 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
python 基于opencv操作摄像头
2020/12/24 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
企业军训感言
2014/02/08 职场文书
教师节标语大全
2014/10/07 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书