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)
- 发布:2023-07-16 01:24
- 更新:2023-07-18 10:52
- 阅读:313
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10和win11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.7
第三方开发者工具版本号: 1.06.2306020
基础库版本号: 2.32.2
项目创建方式: HBuilderX
示例代码:
操作步骤:
直接使用canvas创建标签,需要用到上面这些方法去压缩图片,官方的uni.conpressImage不能满足,所以需要调用此方法实现,无法绘制出来就意味着不能输出图片
直接使用canvas创建标签,需要用到上面这些方法去压缩图片,官方的uni.conpressImage不能满足,所以需要调用此方法实现,无法绘制出来就意味着不能输出图片
预期结果:
需要执行draw,绘制出处理后(压缩)的图片
需要执行draw,绘制出处理后(压缩)的图片
实际结果:
真机中draw方法没有执行
真机中draw方法没有执行
bug描述:
使用uni。createCanvasContext创建的canvas,在模拟器中使用uni.createCanvasContext.draw方法时是正常的,一旦在真机中使用,就会出现手机(目前只发现iPhone 11 pro max中测试使用有此问题)闪退或直接不会执行此方法(基本全部机型都测试过都是此问题偏多)
1 个回复
DCloud_UNI_Anne
直接使用微信小程序(不使用 uni-app )测试一下,如果仍然有问题,反馈到微信小程序社区