iis7如何搭建网站,数据网站开发,谷歌推广教程,时尚女装网站设计之前写过一篇使用Grafika插件生成海报图的文章#xff0c;但是当我再次使用时#xff0c;却发生了错误#xff0c;回看Grafika文档#xff0c;发现很久没更新了#xff0c;不兼容新版的GD#xff0c;所以改用了intervention/image插件来生成海报图。
但是后来需要对海报…之前写过一篇使用Grafika插件生成海报图的文章但是当我再次使用时却发生了错误回看Grafika文档发现很久没更新了不兼容新版的GD所以改用了intervention/image插件来生成海报图。
但是后来需要对海报图上的文字位置进行位置调整例如居中intervention/image没办法很好的满足需求需要自己计算文字显示区域大小计算XY坐标较为复杂。
如果需要完成以上的需求可以使用antonlukin/poster-editor插件实现。 使用的插件 antonlukin/poster-editor 5.15 注意antonlukin/poster-editor只能使用GD库
安装
composer require antonlukin/poster-editor简单使用示例
try {$image new PosterEditor\PosterEditor();$image-make(images/bridge.jpg)-fit(600, 600);$image-show();} catch(Exception $e) {echo $e-getMessage();
}部分方法说明
创建实例
通过图片文件路径或者图片资源创建实例
$image new PosterEditor\PosterEditor();$image-make(mixed $data)// 或者使用通过gd创建的图片资源
$image-set(instance $resourse)也可以初始化一块画布然后在画布上合成图片或文字
$image-canvas(int $width, int $height, array $options array())参数列表
width 画布宽度height 画布高度options color 画布颜色rgb数组或者十六进制颜色#ffffffopacity 画布不透明度0-100数字越大透明度越高0表示不透明默认不透明
输出图片
直接输出图片
$image-show(string $format null, int $quality 90)保存为文件
$image-save(string $path, int $quality 90, string $format null)format 文件格式pnggifwebpjpgquality 图片质量0-100100质量最好文件最大。path 图片文件路径
png格式是无损格式quality只影响图片大小和压缩速度。
调整大小
重设宽高忽略比例
$image-resize(int $width, int $height)按比例放大
$image-upsize(int $width null, int $height null)按比例缩小
$image-downsize(int $width null, int $height null)手动裁切
$image-crop(int $width, int $height, array $options array())width裁切宽度height裁切高度options从哪个位置开始裁切 xy
智能裁切
$image-fit(int $width, int $height, string $position center)width裁切宽度height裁切高度position裁切位置top-left、top、top-right、bottom-left、bottom、bottom-right、right、left、center
插入图片
$image-insert(mixed $data, array $options array(), array $boundary array())data图片文件路径或者图片资源options xx坐标yy坐标opacity画布不透明度0-100数字越大透明度越高0表示不透明默认不透明 boundary此图片的位置和宽高 xX坐标yY坐标width文本框宽度height文本框高度
设置文字主要功能
文字功能是使用poster-editor的主要原因
$image-text(string $text, array $options array(), array $boundary array())text文字内容options x文本框起点的 X 坐标。y文本框起点的 Y 坐标。width文本框的宽度。height文本框的高度。fontsize字体大小若字体过大则会根据文本框进行缩小。color字体颜色。lineheight行高。opacity不透明度。0-100数字越大透明度越高0表示不透明默认不透明。horizontal水平对齐leftrightcenterjustify。vertical垂直对齐leftrightcenterjustify。fontpath字体文件路径.ttf 或 .otf格式。debugtrue则绘制文本框区域。 boundary此文本框的位置和宽高 xX坐标yY坐标width文本框宽度height文本框高度
中文换行问题
经测试下来插件可以通过检测空格中文逗号中文句号来进行换行 $image new PosterEditor();
$image-canvas(500, 500, [color[213,138,138]]);
$image-text(我也像超出了平常旳自己到了另一世界里。到了另一世界里.我爱热闹也爱冷静爱冷静爱冷静爱冷静”爱群居也爱独处。, [x50,y50,width350,fontsize50,color#fcfcfc,opacity10,horizontalleft,fontpath$fontPathBold,debugtrue,
]);
$image-show(png);中间包含文字的色块是开启了debug的效果
还能在图上画线、圆、矩形等以及还有更多文字排版示例可以查看插件的github仓库文档
目前只能更改文字的大小、颜色、对齐这些信息还不能给字体增加描边、阴影。