CodeIgniter 的图像处理类

    1. <?php  
    2. class Image extends Controller {  
    3.     function Image()  
    4.     {  
    5.     parent::Controller();     
    6.     $this->load->library('image_lib');     
    7.     }  
    8.      
    9.     //缩略图  
    10.     function index(){  
    11.         echo '* 调整图像大小 <br>  
    12.             * 创建缩略图 <br>  
    13.             * 图像裁剪 <br>  
    14.             * 图像旋转 <br>  
    15.             * 添加图像水印 <br>  
    16.         ';  
    17.     }  
    18.     //缩略图  
    19.     function resize(){  
    20.     /* 
    21.     注意 
    22.     当$config['create_thumb']等于FALSE并且$config['new_image']没有指定时,会调整原图的大小 
    23.     当$config['create_thumb']等于TRUE并且$config['new_image']没有指定时,生成文件名为(原图名 _thumb.扩展名) 
    24.     当$config['create_thumb']等于FALSE并且$config['new_image']指定时,生成文件名为$config['new_image']的值 
    25.     当$config['create_thumb']等于TRUE并且$config['new_image']指定时,生成文件名为(原图名 _thumb.扩展名) 
    26.     */  
    27.         $config['image_library'] = 'gd2';//(必须)设置图像库  
    28.         $config['source_image'] = 'ptjsite/upload/55002.jpg';//(必须)设置原始图像的名字/路径  
    29.         $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在  
    30.         $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大  
    31.         $config['new_image'] = 'ptjsite/upload/resize004.gif';//设置图像的目标名/路径。  
    32.         $config['width'] = 575;//(必须)设置你想要得图像宽度。  
    33.         $config['height'] = 350;//(必须)设置你想要得图像高度  
    34.         $config['create_thumb'] = TRUE;//让图像处理函数产生一个预览图像(将_thumb插入文件扩展名之前)  
    35.         $config['thumb_marker'] = '_thumb';//指定预览图像的标示。它将在被插入文件扩展名之前。例如,mypic.jpg 将会变成 mypic_thumb.jpg  
    36.         $config['maintain_ratio'] = TRUE;//维持比例  
    37.         $config['master_dim'] = 'auto';//auto, width, height 指定主轴线  
    38.         $this->image_lib->initialize($config);  
    39.         if (!$this->image_lib->resize())  
    40.         {  
    41.             echo $this->image_lib->display_errors();  
    42.         }else{  
    43.             echo "成功的";  
    44.         }  
    45.     }  
    46.     //图像裁剪  
    47.     function crop(){     
    48.         $config['image_library'] = 'gd2';//设置图像库  
    49.         $config['source_image'] = 'ptjsite/upload/004.gif';//(必须)设置原始图像的名字/路径  
    50.         $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在  
    51.         $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大  
    52.         $config['new_image'] = 'ptjsite/upload/crop004.gif';//(必须)设置图像的目标名/路径。  
    53.          
    54.         $config['width'] = 75;//(必须)设置你想要得图像宽度。  
    55.         $config['height'] = 50;//(必须)设置你想要得图像高度  
    56.         $config['maintain_ratio'] = TRUE;//维持比例  
    57.         $config['x_axis'] = '30';//(必须)从左边取的像素值  
    58.         $config['y_axis'] = '40';//(必须)从头部取的像素值  
    59.          
    60.         $this->image_lib->initialize($config);  
    61.          
    62.         if (!$this->image_lib->crop())  
    63.         {  
    64.             echo $this->image_lib->display_errors();  
    65.         }else{  
    66.             echo "成功的";  
    67.         }  
    68.     }  
    69.      
    70.      
    71.     //图像旋转  
    72.     function rotate(){     
    73.         $config['image_library'] = 'gd2';//(必须)设置图像库  
    74.         $config['source_image'] = 'ptjsite/upload/001.jpg';//(必须)设置原始图像的名字/路径  
    75.         $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在  
    76.         $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大  
    77.         $config['new_image'] = 'ptjsite/upload/rotate001.jpg';//设置图像的目标名/路径  
    78.         $config['rotation_angle'] = 'vrt';//有5个旋转选项 逆时针90 180 270 度 vrt 竖向翻转 hor 横向翻转     
    79.         $this->image_lib->initialize($config);  
    80.          
    81.         if ( ! $this->image_lib->rotate())  
    82.         {  
    83.             echo $this->image_lib->display_errors();  
    84.         }  
    85.     }  
    86.      
    87.     //文字水印  
    88.     function watermark(){  
    89.         $config['image_library'] = 'gd2';//(必须)设置图像库  
    90.         $config['source_image'] = 'ptjsite/upload/003.jpg';//(必须)设置原图像的名字和路径. 路径必须是相对或绝对路径,但不能是URL.  
    91.         $config['dynamic_output'] = FALSE;//TRUE 动态的存在(直接向浏览器中以输出图像),FALSE 写入硬盘  
    92.         $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大  
    93.         $config['new_image'] = 'ptjsite/upload/crop004.gif';//设置图像的目标名/路径。  
    94.          
    95.         $config['wm_type'] = 'overlay';//(必须)设置想要使用的水印处理类型(text, overlay)  
    96.         $config['wm_padding'] = '5';//图像相对位置(单位像素)  
    97.         $config['wm_vrt_alignment'] = 'middle';//竖轴位置 top, middle, bottom  
    98.         $config['wm_hor_alignment'] = 'center';//横轴位置 left, center, right  
    99.         $config['wm_vrt_offset'] = '0';//指定一个垂直偏移量(以像素为单位)  
    100.         $config['wm_hor_offset'] = '0';//指定一个横向偏移量(以像素为单位)  
    101.         /* 文字水印参数设置 */  
    102.         $config['wm_text'] = 'Copyright 2008 - John Doe';//(必须)水印的文字内容  
    103.         $config['wm_font_path'] = 'ptj_system/fonts/type-ra.ttf';//字体名字和路径  
    104.         $config['wm_font_size'] = '16';//(必须)文字大小  
    105.         $config['wm_font_color'] = 'FF0000';//(必须)文字颜色,十六进制数  
    106.         $config['wm_shadow_color'] = 'FF0000';//投影颜色,十六进制数  
    107.         $config['wm_shadow_distance'] = '3';//字体和投影距离(单位像素)。  
    108.         /* 图像水印参数设置 */  
    109.         /* 
    110.         $config['wm_overlay_path'] = 'ptjsite/upload/overlay.png';//水印图像的名字和路径 
    111.         $config['wm_opacity'] = '50';//水印图像的透明度 
    112.         $config['wm_x_transp'] = '4';//水印图像通道 
    113.         $config['wm_y_transp'] = '4';//水印图像通道 
    114.         */  
    115.         $this->image_lib->initialize($config);  
    116.         $this->image_lib->watermark();  
    117.     }  
    118.      
    119.     //图像水印  
    120.     function watermark2(){  
    121.         $config['image_library'] = 'gd2';//(必须)设置图像库  
    122.         $config['source_image'] = 'ptjsite/upload/003.jpg';//(必须)设置原图像的名字和路径. 路径必须是相对或绝对路径,但不能是URL.  
    123.         $config['dynamic_output'] = FALSE;//TRUE 动态的存在(直接向浏览器中以输出图像),FALSE 写入硬盘  
    124.         $config['quality'] = '90%';//设置图像的品质。品质越高,图像文件越大  
    125.         $config['new_image'] = 'ptjsite/upload/crop004.gif';//设置图像的目标名/路径。  
    126.          
    127.         $config['wm_type'] = 'overlay';//(必须)设置想要使用的水印处理类型(text, overlay)  
    128.         $config['wm_padding'] = '5';//图像相对位置(单位像素)  
    129.         $config['wm_vrt_alignment'] = 'middle';//竖轴位置 top, middle, bottom  
    130.         $config['wm_hor_alignment'] = 'center';//横轴位置 left, center, right  
    131.         $config['wm_vrt_offset'] = '0';//指定一个垂直偏移量(以像素为单位)  
    132.         $config['wm_hor_offset'] = '0';//指定一个横向偏移量(以像素为单位)  
    133.         /* 文字水印参数设置 */  
    134.         /* 
    135.         $config['wm_text'] = 'Copyright 2008 - John Doe';//(必须)水印的文字内容 
    136.         $config['wm_font_path'] = 'ptj_system/fonts/type-ra.ttf';//字体名字和路径 
    137.         $config['wm_font_size'] = '16';//(必须)文字大小 
    138.         $config['wm_font_color'] = 'FF0000';//(必须)文字颜色,十六进制数 
    139.         $config['wm_shadow_color'] = 'FF0000';//投影颜色,十六进制数 
    140.         $config['wm_shadow_distance'] = '3';//字体和投影距离(单位像素)。 
    141.         */  
    142.          
    143.         /* 图像水印参数设置 */  
    144.         $config['wm_overlay_path'] = 'ptjsite/upload/overlay.png';//水印图像的名字和路径  
    145.         $config['wm_opacity'] = '50';//水印图像的透明度  
    146.         $config['wm_x_transp'] = '4';//水印图像通道  
    147.         $config['wm_y_transp'] = '4';//水印图像通道  
    148.          
    149.         $this->image_lib->initialize($config);  
    150.         $this->image_lib->watermark();  
    151.     }  
    152. }  
    153. ?>  
原文地址:https://www.cnblogs.com/xingmeng/p/2950979.html