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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
一篇不错的PHP基础学习笔记
Mar 18 PHP
dedecms中显示数字验证码的修改方法
Mar 21 PHP
php 远程关机操作的代码
Dec 05 PHP
PHP类中Static方法效率测试代码
Oct 17 PHP
php MessagePack介绍
Oct 06 PHP
php对称加密算法示例
May 07 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
zen_cart实现支付前生成订单的方法
May 06 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 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怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php header函数的常用http头设置
2015/06/25 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
php 的反射详解及示例代码
2016/08/25 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
十佳大学生事迹材料
2014/01/29 职场文书
大型车展策划方案
2014/02/01 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
农村葬礼主持词
2014/03/31 职场文书
投资合作协议书范本
2014/04/17 职场文书
大班亲子运动会方案
2014/06/10 职场文书
建筑工地宣传标语
2014/06/18 职场文书
党代会心得体会
2014/09/04 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Mysql如何查看是否使用到索引
2022/12/24 MySQL