📜  codeigniter 中的 imagelib thourgh 类 - PHP (1)

📅  最后修改于: 2023-12-03 14:40:08.360000             🧑  作者: Mango

CodeIgniter 中的 ImageLib & GD 库

介绍

当我们需要对图片进行操作时,CodeIgniter 中的 ImageLib 库会非常有用。它提供了一组简单的函数,用于生成缩略图、旋转、裁剪、加水印等常见的图片处理操作。

ImageLib 库依赖于 GD 库,因此在使用之前需确保 GD 库已安装。

安装

为了使用 ImageLib 库,我们需要将其放在 CodeIgniter 库目录中。具体步骤如下:

  1. 将 ImageLib.php 文件复制到 application/libraries 目录下

  2. 加载库文件

$this->load->library('image_lib');
常用函数

以下是 ImageLib 中最常用的函数及其使用方法:

resize()

用于缩放图像。函数签名如下:

$this->image_lib->resize();

参数列表:

  • width:指定缩放后的宽度
  • height:指定缩放后的高度
  • quality:指定压缩图片的质量,范围为 1 至 100
  • maintain_ratio:是否保持图片比例,默认为 TRUE
  • master_dim:指定缩放依据,可选值为 'auto'、'width'、'height',默认为 'auto',表示根据宽高比自动选择缩放依据

示例代码:

$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image.jpg';
$config['maintain_ratio'] = TRUE;
$config['width']         = 200;
$config['height']       = 200;

$this->load->library('image_lib', $config); 

$this->image_lib->resize();

if (! $this->image_lib->resize())
{
    echo $this->image_lib->display_errors();
}
crop()

用于裁剪图像。函数签名如下:

$this->image_lib->crop();

参数列表:

  • width:指定裁剪后的宽度
  • height:指定裁剪后的高度
  • x_axis:从图像的哪个点开始裁剪(左上角为原点)
  • y_axis:从图像的哪个点开始裁剪(左上角为原点)

示例代码:

$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image.jpg';
$config['x_axis']   = '100';
$config['y_axis']   = '50';
$config['width']   = '250';
$config['height']   = '200';

$this->load->library('image_lib', $config); 

$this->image_lib->crop();

if (! $this->image_lib->crop())
{
    echo $this->image_lib->display_errors();
}
rotate()

用于旋转图像。函数签名如下:

$this->image_lib->rotate();

参数列表:

  • angle:旋转角度,可正可负,单位为度(°),如 90、-90 等
  • bgcolor:旋转后空白处填充颜色值,可以是十六进制或 rgb 值,如 '#ffffff'、'255,255,255' 等

示例代码:

$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image.jpg';
$config['rotation_angle']= '90';
$config['bgcolor']       = '#000000';

$this->load->library('image_lib', $config); 

$this->image_lib->rotate();

if (! $this->image_lib->rotate())
{
    echo $this->image_lib->display_errors();
}
watermark()

用于添加水印。函数签名如下:

$this->image_lib->watermark();

参数列表:

  • source_image:原始图片路径
  • watermark_image:水印图片路径
  • opacity:水印图像的透明度,范围为 0 至 100
  • watermark_x:水印图像位置,横坐标
  • watermark_y:水印图像位置,纵坐标

示例代码:

$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image.jpg';
$config['wm_type']    = 'overlay';
$config['wm_overlay_path'] = '/path/to/watermark.png';
$config['wm_opacity']= 50;
$config['wm_x_offset'] = 10;
$config['wm_y_offset'] = 10;

$this->load->library('image_lib', $config); 

$this->image_lib->watermark();

if (! $this->image_lib->watermark())
{
    echo $this->image_lib->display_errors();
}
结语

CodeIgniter 的 ImageLib 库提供了一组简单易用的图片处理函数,可以大大减少编写处理图片的代码量,快速实现对图像的操作,提高开发效率。