在上周的工作中,第一次接触和了解php对图像的相关处理。php在图像的处理中主要依赖于GD拓展,其主要的操作方法可以参考php手册,链接:GD 和图像处理。我回顾了此次工作中的功能开发,封装了一个图像处理的相关类库。
Image类库
- 主体功能:图片合成,水印处理等
- author: Javion
- email:535090976@qq.com
1、使用场景
2、配置说明(默认配置如下)
$config = [
/**
* 水印字体(默认字体不支持中文,请按需配置需要的字体)
*/
'font' => __DIR__ . '/font.ttf',
/**
* 水印位置(1~9,9宫格位置,其他为随机)
*/
'pos' => 9,
/**
* 相对pos的x偏移量
*/
'posX' => 0,
/**
* 相对pos的y偏移量
*/
'posY' => 0,
/*
* 水印透明度
* 填写0~100间的数字,100为不透明
*/
'opacity' => 100,
/**
* 透明度参数 alpha,其值从 0 到 127。0 表示完全不透明,127 表示完全透明
*/
'alpha' => 0,
/*
* 默认水印文字
*/
'text' => 'Javion',
/*
* 文字颜色 颜色使用16进制表示
*/
'textColor' => '#FF4040',
/*
* 文字大小
*/
'textSize' => 12,
];
3、方法说明
类初始化
- __construct($image, array $config = [])
参数 |
值 |
是否必传 |
image |
原图片路径 |
是 |
config |
配置数组,根据业务自定义配置,无则为默认值 |
否 |
往原图添加水印图片
- waterImg($waterImg, $pos, $opacity = 0, $posX = 0, $posY = 0)
参数 |
值 |
是否必传 |
waterImg |
水印图片路径 |
是 |
pos |
水印位置 |
否 |
opacity |
透明度 |
否 |
posX |
位置x偏移量 |
否 |
posY |
位置y偏移量 |
否 |
往原图添加水印文字
- waterText($text, $pos = 0, $textColor = '', $textSize = 0, $alpha = 0, $posX = 0, $posY = 0)
参数 |
值 |
是否必传 |
text |
水印文字 |
是 |
pos |
水印位置 |
否 |
textColor |
颜色 |
否 |
textSize |
文字size |
否 |
alpha |
透明度 |
否 |
posX |
位置x偏移量 |
否 |
posY |
位置y偏移量 |
否 |
设置水印文字类型文件
参数 |
值 |
是否必传 |
font |
文字字体文件路径 |
是 |
输出图片(类型为png)
- save($outImg, $name = 'out')
参数 |
值 |
是否必传 |
outImg |
输出图片路径 |
是,例子:项目路径/runtime/ |
name |
输出图片名称 |
否,默认out |
销毁图片资源,释放内存(save方法会默认调用,若无调用save方法,则要手动调用)
4、使用
$a = __DIR__ . '/Javion.png';
$image = new Watermark($a);
b = __DIR__ . '/';
$c = __DIR__ . '/water.png';
$image->waterText('zzwtestd', 8)->waterImg($c, 2, 50)->save($b);
5、安装使用
composer require javion/image
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。