diff --git a/painter.js b/painter.js index f24fa86..db024fb 100644 --- a/painter.js +++ b/painter.js @@ -662,49 +662,49 @@ Component({ startPaint() { this.initScreenK(); + const { + width, + height + } = this.properties.palette; - this.downloadImages(this.properties.palette).then(async (palette) => { - const { - width, - height - } = palette; + if (!width || !height) { + console.error(`You should set width and height correctly for painter, width: ${width}, height: ${height}`); + return; + } - if (!width || !height) { - console.error(`You should set width and height correctly for painter, width: ${width}, height: ${height}`); - return; - } + let needScale = false; + // 生成图片时,根据设置的像素值重新绘制 + if (width.toPx() !== this.canvasWidthInPx) { + this.canvasWidthInPx = width.toPx(); + needScale = this.properties.use2D; + } + if (this.properties.widthPixels) { + setStringPrototype(this.screenK, this.properties.widthPixels / this.canvasWidthInPx) + this.canvasWidthInPx = this.properties.widthPixels + } - let needScale = false; - // 生成图片时,根据设置的像素值重新绘制 - if (width.toPx() !== this.canvasWidthInPx) { - this.canvasWidthInPx = width.toPx(); - needScale = this.properties.use2D; - } - if (this.properties.widthPixels) { - setStringPrototype(this.screenK, this.properties.widthPixels / this.canvasWidthInPx) - this.canvasWidthInPx = this.properties.widthPixels - } - - if (this.canvasHeightInPx !== height.toPx()) { - this.canvasHeightInPx = height.toPx(); - needScale = needScale || this.properties.use2D; - } - this.setData({ - photoStyle: `width:${this.canvasWidthInPx}px;height:${this.canvasHeightInPx}px;`, + if (this.canvasHeightInPx !== height.toPx()) { + this.canvasHeightInPx = height.toPx(); + needScale = needScale || this.properties.use2D; + } + this.setData({ + photoStyle: `width:${this.canvasWidthInPx}px;height:${this.canvasHeightInPx}px;`, + }, function () { + this.downloadImages(this.properties.palette).then(async palette => { + if (!this.photoContext) { + this.photoContext = await this.getCanvasContext(this.properties.use2D, 'photo'); + } + if (needScale) { + const scale = getApp().systemInfo.pixelRatio; + this.photoContext.width = this.canvasWidthInPx * scale; + this.photoContext.height = this.canvasHeightInPx * scale; + this.photoContext.scale(scale, scale); + } + new Pen(this.photoContext, palette).paint(() => { + this.saveImgToLocal(); + }); + setStringPrototype(this.screenK, this.properties.scaleRatio); }); - if (!this.photoContext) { - this.photoContext = await this.getCanvasContext(this.properties.use2D, 'photo'); - } - if (needScale) { - const scale = getApp().systemInfo.pixelRatio; - this.photoContext.width = this.canvasWidthInPx * scale; - this.photoContext.height = this.canvasHeightInPx * scale; - this.photoContext.scale(scale, scale); - } - new Pen(this.photoContext, palette).paint(() => { - this.saveImgToLocal(); - }); - setStringPrototype(this.screenK, this.properties.scaleRatio); }); },