阿震
阿震
  • 发布:2021-01-18 13:39
  • 更新:2021-01-18 13:39
  • 阅读:637

【报Bug】CanvasContext.drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 使用方法与描述不符

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10(20h2 内部版本号 19042.746)

HBuilderX类型: 正式

HBuilderX版本号: 3.0.5

第三方开发者工具版本号: 1.03.2101150

基础库版本号: 2.14.3

项目创建方式: HBuilderX

示例代码:

在百度小程序中写作:

ctxAvatar.drawImage(  
    this.imageInfo.path,  
    0, 0, this.canvasAvatarRect.width, this.canvasAvatarRect.height,  
    avatarRect.left, avatarRect.top, avatarRect.width, avatarRect.height  
);

在微信和支付宝中却要写成才能得到一样的效果:

ctxAvatar.drawImage(  
    this.imageInfo.path,  
    avatarRect.left, avatarRect.top, avatarRect.width, avatarRect.height,  
    0, 0, this.canvasAvatarRect.width, this.canvasAvatarRect.height,  
);

操作步骤:

只要你使用 CanvasContext.drawImage 的9个参数的调用方式来画图,就会复现

预期结果:

在所有小程序里用法一直,或者在现在的文档里标明平台差异。免得后面开发者像我一样继续踩坑。

实际结果:

百度小程序用法和和文档描述一致。微信小程序和支付宝小程序里,搞反了。其它的未测试。

bug描述:

CanvasContext.drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
使用方法与描述不符
在百度小程序中,没有任何问题,使用方法与描述相符。

在支付宝小程序和微信小程序中,发现s开头的参数,与d开头的参数组的位置是对换的: CanvasContext.drawImage(dx, dy, dWidth, dHeight, sx, sy, sWidth, sHeight)

不知道算是API的BUG,还是说文档不够完整。

2021-01-18 13:39 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复