cax icon indicating copy to clipboard operation
cax copied to clipboard

小程序 cax 渲染svg里边的image drawImage绘制图像的宽度和高度没有按照传入的图片width height绘制

Open gexin1 opened this issue 4 years ago • 2 comments

//cax/packages/cax/src/render/display/bitmap.js
 //22 行
        util.getImageInWx(img, (result) => {
          this.img = result.img
          if (!this.rect) {
            this.rect = [0, 0, result.width, result.height]
          }
        // 这里把传入的宽 高 设置为图片的宽高
        // 预期不应该修改传入的图片宽高
          this.width = result.width
          this.height = result.height
          onLoad && onLoad.call(this)
          Bitmap.cache[img] = result
        })
    
//cax/packages/cax/src/render/render/canvas-render.js
//122 行
ctx.drawImage(o.img, bRect[0], bRect[1], bRect[2], bRect[3], 0, 0, bRect[2], bRect[3])
// 预期应该按照传入的宽高裁剪
ctx.drawImage(o.img, bRect[0], bRect[1], bRect[2], bRect[3], 0, 0, this.width, this.height)

gexin1 avatar Jul 03 '20 14:07 gexin1

请问一下是出于什么方面考虑的呢😥

gexin1 avatar Jul 03 '20 14:07 gexin1

今晚也遇到这个问题,才代码来看,bitmap和Sprite都是以图片实际尺寸大小去渲染的,想控制展示时的大小,只能通过放大缩小了。

dongnanyanhai avatar Oct 21 '22 16:10 dongnanyanhai