|
il y a 1 an | |
---|---|---|
.. | ||
LICENSE | il y a 1 an | |
README.md | il y a 1 an | |
index.js | il y a 1 an | |
package.json | il y a 1 an | |
view.png | il y a 1 an |
npm i canvas
, 并且切换Node版本后需要重新安装canvasnpm i qs-canvas
const QSCanvas = require('qs-canvas')
<script src="xxx.js"></script>
import QSCanvas from 'xxx.js'
const qsc = new QSCanvas(options, vm)
options<Object>: {
width<Number>: 10, //canvas的宽
height<Number>: 10, //canvas的高
canvasId<String>: '', //canvasId, uni-app必传、web可不传
setCanvasWH<Function>: undefined, //动态设置canvas宽高方法, uni-app需传
asyncDrawMode<Boolean>: true, //异步绘制模式, web、node支持, 控制是否像uni-app一样只有在调用draw时才绘制内容
}
vm<Object>: undefined //uni-app, 自定义组件实例 this ,表示在这个自定义组件下查找拥有 canvas-id 的 <canvas/> ,如果省略,则不在任何自定义组件内查找
qsc._data<Object>: {
oldPaintbrushProps: paintbrushProps<Object>, //当前画笔设置
width<Number>: 10, //画布宽度
height<Number>: 10, //画布高度
}
// 展示的是默认值, 不用都传
qsc.setPaintbrush(paintbrushProps<Object>)
paintbrushProps<Object>: {
fillStyle<String>?: '#000000',
strokeStyle<String>?: '#000000',
shadowColor<String>?: '#000000',
shadowBlur<Number>?: 0,
shadowOffsetX<Number>?: 0,
shadowOffsetY<Number>?: 0,
lineCap<String>?: 'butt',
lineJoin<String>?: 'miter',
lineWidth<Number>?: 1,
miterLimit<Number>?: 10,
font: { // 头条小程序只支持fontSize
fontStyle<String>?: 'normal',
fontVariant<String>?: 'normal',
fontWeight<String>?: 'normal',
fontSize<Number>?: 10,
fontFamily<String>?: 'sans-serif'
},
textAlign<String>?: 'start',
textBaseline<String>?: 'top',
globalAlpha<Number>?: 1.0,
globalCompositeOperation<String>?: 'source-over',
}
// 若不传参则重置为setPaintbrush中展示的默认值, 若传可覆盖
qsc.resetPaintbrush(paintbrushProps<Object>?)
qsc.savePaintbrush()
qsc.restorePaintbrush()
qsc.saveAndSetPaintbrush(paintbrushProps<Object>)
promise
// 该方法会在结束时自动调用一次resetPaintbrush(this._data.oldPaintbrushProps)
await qsc.updateCanvasWH(options<Object>?)
options<Object>: {
width<Number>?: this.width, // 若不传则使用初始化时的width
height<Number>?: this.height, // 若不传则使用初始化时的height
delay<Number>?: 50, // uni-app更新画布宽高后延时操作
}
promise
await qsc.draw(options<Object>?)
options<Obeject>: {
reserve<Boolean>?: false, // 是否接着上一次绘制
}
promise
```js await qsc.toImage(options