canvas绘制海报+二维码,满足绝大部分场景

canvas_x

无需任何第三方依赖,轻型工具库。
canvas绘制海报,生成带logo的二维码。也可生成编辑界面,用户自定义输入,一键生成等等

默认开启图片跨域,但服务端的图片也需要后端进行相应的跨域设置。

项目地址

https://github.com/sayll/canvas_x

使用方法

npm 下载使用

npm i -S @sayll/canvas_x
// js 片段
import canvas_x from '@sayll/canvas_x'
// TODO
canvas_x.makeImage({...})

直接引用

可直接通过script标签引入lib/canvas_x.js,也可当第三方模块引入。

通过script引入,可通过全局变量 canvas_x直接使用。详情可见demo。

预览

接口

函数描述
makeImage(options, ...)绘制一个图片
renderEditor(container, options, callback)创建编辑节点DOM

makeImage

高阶合成图片

可以接受三个类型:图片,文字,二维码
参数类型描述
optionsobject MakeImageOptions(详情请见,核心配置项)
callbackfunction回调参数:(error?: string, data?: string) => void

renderEditor

生成编辑界面

可以接受三个类型:图片,文字,二维码
参数类型描述
containerHTMLElement一个容器元素节点
optionsobject MakeImageOptions(详情请见,核心配置项
callbackfunction回调参数:(base64: string) => void

MakeImageOptions

绘图核心配置项

参数类型描述
partsarray各组成部分(ImageEntry , TextEntry , QRCodeEntry): 详细见基础类型参数
widthnumber最终图片宽度,建议为显示容器的二倍
heightnumber最终图片高度,建议为显示容器的二倍
backgroundstring画布底色
buttonTextstring编辑模式下,绘制画布按钮文案:null时,隐藏按钮。默认:'绘制画布'
resetButtonTextstring编辑模式下,重新编辑按钮文案:为空或null时,隐藏按钮。默认:'重新编辑'
compressnumber最终图片压缩比,默认0.8

基础类型参数

ImageEntry

表示一个图片部分。

参数类型描述
typestring指定为图片类型:'image'
urlstring要绘制的图片地址,可以是 http: 或 data: 格式
radiusnumber半径率,0-1之间
paddingnumber内边距。通过background控制边框颜色,默认为'#fff'
backgroundstring默认为'#fff'
widthnumber绘制的宽度
heightnumber绘制的高度
editableboolean能否编辑,编辑模式下使用
selectImagefunction如需替换自己的资源为替换图片,可使用此参数; 参数返回一个 callback 接受你替换的图片 (base64或url) 注:当 editable 设置为 true 时,selectImage 将阻止默认 input[type=file]选取图片的默认行为
xnumber相对于左上角的水平坐标
ynumber相对于左上角的垂直坐标
opacitynumber透明度。0-1 之间
clipOptionsobject详细见ClipOptions参数
ClipOptions

图片剪切所需参数

参数类型描述
xnumber相对于左上角的水平坐标
ynumber相对于左上角的垂直坐标
zoomboolean等比缩放图片
alignstring目前只支持'center';图片正中间;

TextEntry

表示一个文本部分。

参数类型描述
typestring指定为文本类型:'text'
textstring要绘制的内容。使用 n 换行
sizestring字体大小
colorstring字体颜色
boldboolean是否加粗
textAlignstring文本对齐方式,"center"、"left"、"right",根据基准点(x,y)水平对齐。默认:'left'
lineAlignstring文本对齐方式,"top"、"middle"、"bottom",根据基准点(x,y)垂直对齐。默认:'top'
editableboolean能否编辑,编辑模式下使用
xnumber相对于左上角的水平坐标
ynumber相对于左上角的垂直坐标
opacitynumber透明度。0-1 之间

QRCodeEntry

表示一个二维码部分

参数类型描述
typestring指定为二维码类型:'qrcode'
textstring要绘制的内容。网址需要使用 http: 开头
paddingnumber内边距。通过background控制边框颜色,默认为'#fff'
backgroundstring默认为'#fff'
levelnumber容错等级。1-5,数值越大容错越高
logostring二维码logo的地址,可以是 http: 或 data: 格式
widthnumber绘制的宽度
heightnumber绘制的高度
xnumber相对于左上角的水平坐标
ynumber相对于左上角的垂直坐标
opacitynumber透明度。0-1 之间

开发命令

npm run <script>note
build打包文件
build:dev监听修改
browse启动server
startstart 整个项目server服务
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值