123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { CHAR_WIDTH_SCALE_MAP } from './utils'
- const _expand = ctx => {
- // #ifndef APP-PLUS
- ctx._measureText = ctx.measureText
- // #endif
- return {
- setFonts({fontFamily: ff = 'sans-serif', fontSize: fs = 14, fontWeight: fw = 'normal' , textStyle: ts = 'normal'}) {
- // let ctx = this.ctx
- // 设置属性
- // #ifndef MP-TOUTIAO
- // fw = fw == 'bold' ? 'bold' : 'normal'
- // ts = ts == 'italic' ? 'italic' : 'normal'
- // #endif
- // #ifdef MP-TOUTIAO
- fw = fw == 'bold' ? 'bold' : ''
- ts = ts == 'italic' ? 'italic' : ''
- // #endif
- ctx.font = `${ts} ${fw} ${fs}px ${ff}`;
- },
- // #ifndef APP-PLUS
- measureText(text, fontSize) {
- // app measureText为0需要累加计算0
- return {
- width: text.split("").reduce((widthScaleSum, char) => {
- let code = char.charCodeAt(0);
- let widthScale = CHAR_WIDTH_SCALE_MAP[code - 0x20] || 1;
- return widthScaleSum + widthScale;
- }, 0) * fontSize
- };
- },
- // #endif
- }
- };
- export function expand(ctx) {
- return Object.assign(ctx, _expand(ctx))
- }
- export function adaptor(ctx) {
- return Object.assign(ctx, _expand(ctx), {
- setStrokeStyle(val) {
- ctx.strokeStyle = val;
- },
- setLineWidth(val) {
- ctx.lineWidth = val;
- },
- setLineCap(val) {
- ctx.lineCap = val;
- },
- setFillStyle(val) {
- ctx.fillStyle = val;
- },
- setFontSize(val) {
- ctx.font = String(val);
- },
- setGlobalAlpha(val) {
- ctx.globalAlpha = val;
- },
- setLineJoin(val) {
- ctx.lineJoin = val;
- },
- setTextAlign(val) {
- ctx.textAlign = val;
- },
- setMiterLimit(val) {
- ctx.miterLimit = val;
- },
- setShadow(offsetX, offsetY, blur, color) {
- ctx.shadowOffsetX = offsetX;
- ctx.shadowOffsetY = offsetY;
- ctx.shadowBlur = blur;
- ctx.shadowColor = color;
- },
- setTextBaseline(val) {
- ctx.textBaseline = val;
- },
- createCircularGradient() {},
- draw() {},
- });
- }
|