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


打开一张图片

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

use Timo\Image;
use Timo\Loader;

$image_file = Loader::getFilePath('static::images/timophp.jpg');
$Image = new Image($image_file);

方式二,调用open方法打开

这种方式,可以打开多个
use Timo\Image;
use Timo\Loader;

$image_file = Loader::getFilePath('static::images/timophp.jpg');
$Image = new Image();
$Image->open($image_file);
$Image->open($image_file2);
$Image->open($image_file3);

裁剪图像

方法:crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)
参数:
    /**
     * @param  int $w 裁剪区域宽度
     * @param  int $h 裁剪区域高度
     * @param  int $x 裁剪区域x坐标
     * @param  int $y 裁剪区域y坐标
     * @param  int $width 图像保存宽度
     * @param  int $height 图像保存高度
     */
use Timo\Image;
use Timo\Loader;

$image_file = Loader::getFilePath('static::images/timophp.jpg');
$save_file = Loader::getFilePath('static::images/timophp_save.jpg');

$Image = new Image($image_file);
$Image->crop(600, 800, 10, 10);
$Image->save($save_file);

保存图片

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

生成缩略图

方法:thumb($width, $height, $type = Image::IMAGE_THUMB_SCALE)
参数:
    /**
     * @param  integer $width 缩略图最大宽度
     * @param  integer $height 缩略图最大高度
     * @param  integer $type 缩略图裁剪类型
     */

use Timo\Image;
use Timo\Loader;

$image_file = Loader::getFilePath('static::images/timophp.jpg');
$thumb_file = Loader::getFilePath('static::images/timophp_thumb.jpg');

$Image = new Image($image_file);
$Image->thumb(120, 240);
$Image->save($thumb_file);

打水印

方法:water($locate = Image::IMAGE_WATER_SOUTHEAST, $alpha = 80, $des_water = true)
参数:
    /**
     * @param int $locate       水印位置,默认是右下角
     * @param int $alpha        水印图片透明度
     * @param bool $des_water   打了之后是否销毁水印图片资源
     * @return bool
     */
use Timo\Image;
use Timo\Loader;

$image_file = Loader::getFilePath('static::images/timophp.jpg');
$water_file = Loader::getFilePath('static::images/water.jpg');

$Image = new Image($image_file);
$Image->setWaterImage($water_file);
$Image->water();
$Image->save($image_file);