图片处理,缩略图、打水印


打开一张图片

方式一,在初始化的时候打开

  1. use Timo\Image;
  2. use Timo\Loader;
  3. $image_file = Loader::getFilePath('static::images/timophp.jpg');
  4. $Image = new Image($image_file);

方式二,调用open方法打开

  1. 这种方式,可以打开多个
  1. use Timo\Image;
  2. use Timo\Loader;
  3. $image_file = Loader::getFilePath('static::images/timophp.jpg');
  4. $Image = new Image();
  5. $Image->open($image_file);
  6. $Image->open($image_file2);
  7. $Image->open($image_file3);

裁剪图像

  1. 方法:crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)
  2. 参数:
  3. /**
  4. * @param int $w 裁剪区域宽度
  5. * @param int $h 裁剪区域高度
  6. * @param int $x 裁剪区域x坐标
  7. * @param int $y 裁剪区域y坐标
  8. * @param int $width 图像保存宽度
  9. * @param int $height 图像保存高度
  10. */
  1. use Timo\Image;
  2. use Timo\Loader;
  3. $image_file = Loader::getFilePath('static::images/timophp.jpg');
  4. $save_file = Loader::getFilePath('static::images/timophp_save.jpg');
  5. $Image = new Image($image_file);
  6. $Image->crop(600, 800, 10, 10);
  7. $Image->save($save_file);

保存图片

  1. 方法:save($image, $type = null, $quality = 80, $interlace = true)
  2. 参数:
  3. /**
  4. * @param string $image 图像保存名称
  5. * @param string $type 图像类型
  6. * @param int $quality 图像质量
  7. * @param bool $interlace 是否对JPEG类型图像设置隔行扫描
  8. * @throws \Exception
  9. */

生成缩略图

  1. 方法:thumb($width, $height, $type = Image::IMAGE_THUMB_SCALE)
  2. 参数:
  3. /**
  4. * @param integer $width 缩略图最大宽度
  5. * @param integer $height 缩略图最大高度
  6. * @param integer $type 缩略图裁剪类型
  7. */
  1. use Timo\Image;
  2. use Timo\Loader;
  3. $image_file = Loader::getFilePath('static::images/timophp.jpg');
  4. $thumb_file = Loader::getFilePath('static::images/timophp_thumb.jpg');
  5. $Image = new Image($image_file);
  6. $Image->thumb(120, 240);
  7. $Image->save($thumb_file);

打水印

  1. 方法:water($locate = Image::IMAGE_WATER_SOUTHEAST, $alpha = 80, $des_water = true)
  2. 参数:
  3. /**
  4. * @param int $locate 水印位置,默认是右下角
  5. * @param int $alpha 水印图片透明度
  6. * @param bool $des_water 打了之后是否销毁水印图片资源
  7. * @return bool
  8. */
  1. use Timo\Image;
  2. use Timo\Loader;
  3. $image_file = Loader::getFilePath('static::images/timophp.jpg');
  4. $water_file = Loader::getFilePath('static::images/water.jpg');
  5. $Image = new Image($image_file);
  6. $Image->setWaterImage($water_file);
  7. $Image->water();
  8. $Image->save($image_file);