d***@qq.com
d***@qq.com
  • 发布:2023-07-16 01:24
  • 更新:2023-07-18 10:52
  • 阅读:313

【报Bug】微信小程序uni.createCanvasContext.draw方法真机中不生效问题?

分类:uni-app

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

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10和win11

HBuilderX类型: 正式

HBuilderX版本号: 3.8.7

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

基础库版本号: 2.32.2

项目创建方式: HBuilderX

示例代码:

that.ctx = uni.createCanvasContext("firstCanvas",that);
that.canvasWidth = res.width / info.pixelRatio;
that.canvasHeight = res.height / info.pixelRatio;
that.ctx.drawImage(res.path, 0, 0, that.canvasWidth,
that.canvasHeight);
console.log('that.ctx.',that.ctx);
setTimeout(()=>{
console.log(111);
that.ctx.draw(false,()=>{
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: that
.canvasWidth,
height: that
.canvasHeight,
destWidth: that
.canvasWidth, //输出图片宽度
destHeight: that
.canvasHeight, //输出图片高度
canvasId: "firstCanvas",
quality: .1,
success: function(
data) {
console.log(
'data---',
data
.tempFilePath
);
// return
resolve(data)
},
fail: (e) => {
// 提示:图片信息获取失败
console.warn('图片信息获取失败----',e);
}
}, that);
});
},1000)

操作步骤:

直接使用canvas创建标签,需要用到上面这些方法去压缩图片,官方的uni.conpressImage不能满足,所以需要调用此方法实现,无法绘制出来就意味着不能输出图片

预期结果:

需要执行draw,绘制出处理后(压缩)的图片

实际结果:

真机中draw方法没有执行

bug描述:

使用uni。createCanvasContext创建的canvas,在模拟器中使用uni.createCanvasContext.draw方法时是正常的,一旦在真机中使用,就会出现手机(目前只发现iPhone 11 pro max中测试使用有此问题)闪退或直接不会执行此方法(基本全部机型都测试过都是此问题偏多)

2023-07-16 01:24 负责人:无 分享
已邀请:
DCloud_UNI_Anne

DCloud_UNI_Anne

直接使用微信小程序(不使用 uni-app )测试一下,如果仍然有问题,反馈到微信小程序社区

要回复问题请先登录注册