### **poster**
#### 介绍
**得益于 gd、imagick、phpqrcode、wkhtmltopdf**
**主要为了封装一个生成图片便捷的插件,非常感谢使用到的所有工具背后开发者的贡献**
PHP海报生成插件,极速生成方便快捷。
快速生成海报、生成签到日、生成二维码、合成二维码、图片添加水印
滑块验证图片生成、旋转验证图片生成、点击验证图片生成、输入验证图片生成
**小提示:**
**如果无法更新版本,composer 切换回原镜像**
全局设置
composer config -g repo.packagist composer https://repo.packagist.org
#### authors
lang
732853989@qq.com
群号 590660254 [点击链接加入群聊【海报图片验证交流群】](https://jq.qq.com/?_wv=1027&k=k374FhrR)
#### 使用文档
> 文档地址:http://langlanglang.gitee.io/poster-doc/
#### 安装或更新
1. composer require kkokk/poster
2. composer update kkokk/poster
#### 演示效果
##### **输入验证码验证**
数字、算术、中文、字母加数字
##### **点击图片验证**
<img src="tests/1223015613615230151165.gif" alt="输入图片说明" style="zoom: 33%;" />
##### 旋转图片验证
<img src="tests/1223015613610230151165.gif" alt="输入图片说明" style="zoom: 33%;" />
##### 滑块验证图片
<img src="tests/122301561368230151165-1.gif" alt="输入图片说明" style="zoom: 33%;" />
##### 海报生成图片示例
<img src="tests/Kvt1cV5ygB.png" alt="输入图片说明" title="在这里输入图片标题" style="zoom:50%;" />
<img src="tests/YRG3X4WgSZ3lLlwULkxZ3W3LLGgZ4b.jpeg" alt="输入图片说明" style="zoom:50%;" />
<img src="tests/JoJhekR1um.png" alt="输入图片说明" style="zoom:50%;" />
演示地址:暂无
生成签到日历海报、邀请海报
#### **生成海报**
注意:没有特别说明,统一都是px。
##### 通过 PosterManager 调用
```php
use Kkokk\Poster\PosterManager; // 使用 PosterManager 调用
$poster = PosterManager::Poster();
```
##### 通过 Facades 调用
```php
use Kkokk\Poster\Facades\Poster; // 使用 Facades\Poster 调用
$result = Poster::config($params)
->buildIm($w,$h,$rgba,$alpha) # 创建画布
->buildImage($src,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$alpha,$type) # 合成图片
->getPoster(); # 获取合成后图片文件地址
```
> 技巧:也可以分开使用
```php
$Poster = Poster::config($params);
$Poster->buildIm($w,$h,$rgba,$alpha); # 创建画布
$Poster->buildImage($src,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$alpha,$type); # 合成图片
$result = $Poster->getPoster(); # 获取合成后图片文件地址
```
##### 使用 Gd 拓展
```php
$poster = PosterManager::Poster(); // 使用 PosterManager 调用
$Poster = Poster::config($params); // 使用 Facades\Poster 调用
```
##### 使用 Imagick 拓展
```php
$poster = PosterManager::Poster()->extension('imagick'); // 使用 PosterManager 调用
$Poster = Poster::extension('imagick')->config($params); // 使用 Facades\Poster 调用
```
##### 基础配置
```php
$params = [
'path' => $path, // 设置路径
'dpi' => $dpi, // int[]|int 设置 dpi 只针对 Imagick 有效
'font_size' => $fontSize, // 统一设置文字大小
'font_rgba' => $rgba, // 统一设置文字颜色
'font_space' => $angle, // 统一设置文字间距
'font_weight' => $angle, // 统一设置文字粗细
'font_family' => $fontFamily, // 统一设置文字字体,字体绝对路径
'font_angle' => $angle, // 统一设置文字旋转角度
'font_max_w' => $maxW, // 统一设置文字最大换行宽度
];
$poster->config($params);
```
##### 设置路径
```php
$poster->path($path); # 设置路径
```
参数说明
| 变量 | 类型 | 必填 | 注释 |
| ---- | ------------- | ---- | ------------------------------ |
| path | string\|array | 是 | 地址,例如:poster/poster_user |
##### **创建画布**
```php
$poster->buildIm($w,$h,$rgba,$alpha); # 创建画布
```
参数说明
| 变量 | 类型 | 必填 | 注释 |
| ----- | ------- | ---- | ------------------------ |
| w | number | 是 | 画布宽 |
| h | number | 是 | 画布高 |
| rgba | array | 否 | 颜色rbga,[255,255,255,1] |
| alpha | boolean | 否 | 是否透明,是:true |
##### **创建指定图片为画布**
```php
$poster->buildImDst($src,$w,$h,$rgba,$alpha); # 创建指定图片为画布
```
参数说明
| 变量 | 类型 | 必填 | 注释 |
| ----- | ------- | ---- | ------------------------- |
| src | source | 是 | 图像资源 |
| w | number | 否 | 画布宽,默认原图宽 |
| h | number | 否 | 画布高,默认原图高 |
| rgba | array | 否 | 颜色rbga,[255,255,255,1] |
| alpha | boolean | 否 | 是否透明,默认false |
##### **创建背景、遮罩**
> 注意:Imagick 方式,背景目前支持做圆角,渐变色可以支持多种,方向只支持上下
```php
// 背景 rgba 参数解释
// color 颜色数组取值范围 0-255
// alpha 透明度范围 1-127
// to 颜色渐变方向取值范围 bottom、 top、 left、 right、 left top、 right top、 left bottom、 right bottom 默认 bottom
// 单色:['color'=>[[0-255,0-255,0-255]],'alpha'=>1-127]
// 多色渐变:['color'=>[[0-255,0-255,0-255], [0-255,0-255,0-255]],'alpha'=>1-127, 'to'=>'left']
// radius string|array|integer 圆角 默认0 ( '10 20', [10, 20, 30], 10)
// [20] 四个角
// [20,30] 第一个值 左上 右下 第二个值 右上 左下
// [20,30,20] 第一个值 左上 第二个值 右上 左下 第三个值 右下
// [20,30,20,10] 左上 右上 右下 左下
$poster->buildBg(400,526,[
'color'=>[
[0,0,162],
[0,255,162],
[255,255,162],
[255, 0, 0],
[0, 255, 0]
],
'alpha'=>50,
'to'=>'bottom',
'radius'=>'10'
], true, ['center', -10], ['center', 10], 0, 0 , function($im){
$im->buildText('明月几时有,把酒问青天。不知天上宫阙,今夕是何年。','center',100,20,[255, 255, 255, 50]);
}); # 创建画布
```
参数说明
| 变量 | 类型 | 必填 | 注释 |
| ----- | ------- | ---- | ------------------------ |
| w | number | 是 | 画布宽 |
| h | number | 是 | 画布高 |
| rgba | array | 否 | 详见上方注释 |
| alpha | boolean | 否 | 是否透明,是:true |
| dst_x | number\|string\|array | 否 | 画布位置x 特殊值 center 居中,居中并向左偏移 ['center',-5], 居中并向右偏移 ['center',5]; 支持百分比20% 支持自定义 支持正负 |
| dst_y | number\|string\|array | 否 | 画布位置y 特殊值 center 居中,居中并向上偏移 ['center',-5], 居中并向下偏移 ['center',5]; 支持百分比20% 支持自定义 支持正负 |
| src_x | number | 否 | 图片x轴,默认0 |
| src_y | number | 否 | 图片y轴,默认0 |
| func | closure | 否 | 匿名函数(闭包),可以已当前背景为基础合成相应的内容 |
##### **合成图片**
```php
/**
* 合成图片
* @param string|array $src 图片地址,旋转角度
*/
$poster->buildImage($src,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$alpha,$type); # 合成图片
```
> 注意:旋转角度是顺时针
参数说明
| 变量 | 类型 | 必填 | 注释 |
| ----- |----------------|----|------------------------------------------------------------------------------------------|
| src | string\|array | 是 | ['src'=> $src, 'angle'=> $angle] <br> $src: 路径,支持网络图片(带http或https)<br>$angle: 旋转角度,顺时针旋�
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7524
最新资源
- 双有源桥DC-DC变换器与隔离型双向变换器仿真研究:光伏+蓄电池系统下的控制策略与matlab模型,双有源桥DC-DC变器仿真 隔离型双向变器 采用光伏(PV)+蓄电池+负载 光伏采用mppt 控制
- 二维傅里叶变换处理图像过程详解:灰度转换、FFT变换及零频移动,附数据格式调整指南及可运行代码,二维傅里叶变,2D傅里叶变,图像傅里叶变 matlab2018a及以上运行 对图像进行灰度处理后进行做傅
- STM32内部ADC智能光敏路灯项目:源码注释详尽,光敏采集精准,Protues仿真辅助开发,光线弱则路灯亮起,STM32内部12位ADC智能路灯项目,包括程序源码和protues仿真,通过内部ADC
- 基于C# WPF的MVVM架构大屏看板3D可视化展示与工业控件设计,数据库配置化链接,典型三层架构支持,c#WPF MVVM 大屏看板3D可视化 1,WPF编程设计; 2,自定义工业控件设计; 3,数
- Simulink在DSP2833x系列上的电机控制与通讯模型代码自动生成教程,DSP2833x系列基于模型的控制器设计 Simulik自动生成代码 DSP2833x基于模型的电机控制设计 MATLA
- 基于Matlab Simulink的模型预测控制与PI控制结合的Boost变换器均流响应研究,模型预测控制,基于两相交错并联boost变器 可完好地实现均流 模型中包含给定电压跳变和负载突变的响应
- 基于FX3U三边封制袋机:气缸式超音波型前后双伺服送料与模拟量控制变频器给料系统,基于FX3U三边封制袋机程序超音波型 前后双伺服送料,模拟量控制变频器给料,所有切刀用的气缸,不是常用制袋机的电机凸轮
- "微电网智能调控技术:二次控制与比例积分控制协同下的有功无功均分实现",微电网二次控制,下垂控制,比例积分二次控制,补偿了下垂控制的偏差,实现了有功均分和无功均分 ,核心关键词:微电网二次控制; 下垂
- 微电网二次控制策略:基于下垂控制技术的分布式事件触发机制与通信延迟处理效果研究,微电网二次控制,下垂控制,具有通信延迟的微电网分布式事件触发二次控制,实现了二次控制,效果好,有相关参考文献 ,核心
- 澳大利亚模型研究:深度解析5区电网的调压、调频、无功补偿及新能源并网暂态过程,澳大利亚5区14机59节点模型,可研究调压,调频,无功补偿,新能源并网等暂态 ,核心关键词:澳大利亚5区14机59节点
- 考虑源荷随机性的热电联供微网优化系统:基于粒子群PSO算法的经济运行优化模型与随机模拟技术研究(附Matlab程序代码),源荷不确定性 考虑源荷随机特征的热电联供微网优化matlab 复现王锐的含可
- 三菱小型PLC追剪打孔程序:基于高速计数器与编码器,中达优控触摸屏集成应用,三菱小型PLC 1S追剪程序,包装膜追剪打孔 ,拓达伺服,用脉冲加方向的模式,编码器追踪膜的速度, 由于测速度SPD指令和
- 单相H桥级联五电平逆变器SPWM调制闭环仿真研究(附关键波形图),单相H桥级联五电平逆变器仿真(SPWM)2021b 可降版本 闭环仿真 逆变器采用H桥级联的形式连接,单相负载构成 采用SPWM调制
- 基于Matlab Simulink平台的MMC逆变器并网仿真研究:PI控制策略与环流抑制技术探讨,23电平MMC逆变器并网仿真(PI控制) 基于Matlab Simulink仿真平台 采用基于PI控制
- "光伏MPPT仿真研究:直接电压法(恒定电压法)结合PID控制技术的效率优化",光伏MPPT仿真-直接电压法(恒定电压法)加PID控制, ,核心关键词:光伏MPPT仿真; 恒定电压法; 直压法; PI
- MATLAB Simulink 2021b直流微电网设计:风、光、储、负载协同控制,逆变器PQ控制,动态调节电网功率,绝对原创MATLAB Simulink 2021b 直流微电网 风、光、储、负载、
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈