50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
/**
|
|
* 适配 canvas 2d 上下文
|
|
* @param ctx canvas 2d 上下文
|
|
* @returns
|
|
*/
|
|
export function canvas2d(ctx: CanvasRenderingContext2D): UniApp.CanvasContext {
|
|
return Object.assign(ctx, {
|
|
setFillStyle(color: string | CanvasGradient) {
|
|
ctx.fillStyle = color;
|
|
},
|
|
setStrokeStyle(color: string | CanvasGradient | CanvasPattern) {
|
|
ctx.strokeStyle = color;
|
|
},
|
|
setLineWidth(lineWidth: number) {
|
|
ctx.lineWidth = lineWidth;
|
|
},
|
|
setLineCap(lineCap: 'butt' | 'round' | 'square') {
|
|
ctx.lineCap = lineCap;
|
|
},
|
|
|
|
setFontSize(font: string) {
|
|
ctx.font = font;
|
|
},
|
|
setGlobalAlpha(alpha: number) {
|
|
ctx.globalAlpha = alpha;
|
|
},
|
|
setLineJoin(lineJoin: 'bevel' | 'round' | 'miter') {
|
|
ctx.lineJoin = lineJoin;
|
|
},
|
|
setTextAlign(align: 'left' | 'center' | 'right') {
|
|
ctx.textAlign = align;
|
|
},
|
|
setMiterLimit(miterLimit: number) {
|
|
ctx.miterLimit = miterLimit;
|
|
},
|
|
setShadow(offsetX: number, offsetY: number, blur: number, color: string) {
|
|
ctx.shadowOffsetX = offsetX;
|
|
ctx.shadowOffsetY = offsetY;
|
|
ctx.shadowBlur = blur;
|
|
ctx.shadowColor = color;
|
|
},
|
|
setTextBaseline(textBaseline: 'top' | 'bottom' | 'middle') {
|
|
ctx.textBaseline = textBaseline;
|
|
},
|
|
createCircularGradient() {},
|
|
draw() {},
|
|
addColorStop() {}
|
|
}) as unknown as UniApp.CanvasContext;
|
|
}
|