CodeIgniter图像处理类的深入解析

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();

  }

  }

  ?>