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 相关文章推荐
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
php全排列递归算法代码
Oct 09 PHP
php防止sql注入代码实例
Dec 18 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
php单文件版在线代码编辑器
Mar 12 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 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语法(5)
2006/10/09 PHP
一篇入门的php Class 文章
2007/04/04 PHP
PHP速成大法
2015/01/30 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
innerText 使用示例
2014/01/23 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
如何理解python面向对象编程
2020/06/01 Python
Python中的全局变量如何理解
2020/06/04 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
手术室护士自我鉴定
2013/10/14 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
2014年质量工作总结
2014/11/22 职场文书
辞职离别感言
2015/08/04 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL