{{wikiTitle}}
画图工具
目录:
画图工具主要用来绘制海报、二维码,目前使用在绘制二维码功能上,海报不建议使用画图工具;可以改为前端生成海报。对于效率要求不高的情况下可以使用。
内置方法总览
初始化方法
public static function instance()
创建一个新图象
public function createFrom(string $file): array
放入字体
public function pushFontValue()
放入图片
public function pushImageValue()
创建背景
public function createTrueColor(int $w = 0, int $h = 0)
开始画图
public function starDrawChart(bool $force = false): string
辅助方法
setFileName(string $fileName)
设置文件名
setPath(string $path)
设置存放路径
setImageType(string $imageType)
设置图片类型
setBackgroundHeight(int $backgroundHeight)
设置背景高
setBackgroundWidth(int $backgroundWidth)
设置背景宽
setFontSize(int $fontSize)
设置字体大小
setFontColor($fontColor)
设置字体颜色
setFontLeft(int $fontLeft)
设置字体距离左侧位置
setFontTop(int $fontTop)
设置字体距离顶部位置
setFontText(string $fontText)
设置文字
setFontPath(string $fontPath)
设置字体文件路径
setFontAngle(int $fontAngle)
设置字体角度
setImageUrl(string $imageUrl)
设置图片路径
setImageLeft(int $imageLeft)
设置图片距离左侧位置
setImageTop(int $imageTop)
设置图片距离顶部位置
setImageRight(int $imageRight)
设置图片距离左侧位置
setImageStream(bool $imageStream)
设置图片是否未流文件
setImageBottom(int $imageBottom)
设置图片距离底部位置
setImageWidth(int $imageWidth)
设置图片宽
setImageHeight(int $imageHeight)
设置图片高
setImageOpacity(int $imageOpacity)
设置图片透明度
使用示例
使用一个背景图和一个二维码生成海报
use crmeb\utils\Canvas;
$canvas = Canvas::instance();
//放入第一张图作为图层1,也可以当做为背景图
$canvas->setImageUrl(public_path().'statics/qrcode/offlines.jpg')
->setImageHeight(730)
->setImageWidth(500)
->pushImageValue();
//图片绝对路径
$v = '/statics/qrcode.png';
//放入第二张图做图层2
$canvas->setImageUrl($v)
->setImageHeight(344)
->setImageWidth(344)
->setImageLeft(76)
->setImageTop(120)
->pushImageValue();
//生成图片的名称
$name = '2qrcode';
//图片类型,可选:jpg、jpeg、png、gif
$imageType = 'jpg';
//图片存放地址
$path = 'uploads/offline/';
//开始画图
$imageUrl = $canvas->setFileName($name)
->setImageType($imageType)
->setPath($path)
->setBackgroundWidth(500)
->setBackgroundHeight(720)
->starDrawChart();
//返回生成图片的相对路径位置
var_dump($imageUrl);
/*
uploads/offline/2qrcode.jpg
*/
使用一个背景图和多张二维码生成多张图片
画布的背景大小可以通过setBackgroundWidth
和setBackgroundHeight
来设置
放入第二张图的位置(例如二维码),可以通过setImageLeft
和setImageTop
来设置
位置的调整可以通过生成之后的图片测量或者又设计提供尺寸,就可以画出想要的海报图片
use crmeb\utils\Canvas;
$canvas = Canvas::instance();
//放入第一张图作为图层1,也可以当做为背景图
$canvas->setImageUrl(public_path().'statics/qrcode/offlines.jpg')
->setImageHeight(730)
->setImageWidth(500)
->pushImageValue();
$data = [ ];
$path = 'uploads/offline/';
$imageType = 'jpg';
//循环画出两个图片
foreach(['/statics/qrcode.png','/statics/qrcode_user.png'] as $key => $val) {
$name = 'offline_' . $key;
$canvas->setImageUrl($val)
->setImageHeight(344)
->setImageWidth(344)
->setImageLeft(76)
->setImageTop(120)
->pushImageValue();
$image = $canvas->setFileName($name)
->setImageType($imageType)
->setPath($path)
->setBackgroundWidth(500)
->setBackgroundHeight(720)
->starDrawChart();
$data[] = $image;
}
var_dump($data);
/*
[
"uploads/offline/offline_0.jpg",
"uploads/offline/offline_1.jpg",
]
*/