uni-app 调用uni.canvasGetImageData时图片宽高3024 * 4032导致APP崩溃

uni-app 调用uni.canvasGetImageData时图片宽高3024 * 4032导致APP崩溃

产品分类

  • uniapp/App
项目
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.3.3
手机系统 Android
手机系统版本号 Android 11
手机厂商 小米
手机机型 红米K40
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤

调用uni.canvasGetImageData

预期结果

调用uni.canvasGetImageData时,能够正常返回数据

实际结果

调用uni.canvasGetImageData时,图片宽高为3024 * 4032,APP直接崩溃了

bug描述

that.ctx.draw(false, () => {  
  console.log('beforeGetImageData')  
  // 获取 canvas 的像素数组  
  uni.canvasGetImageData({  
    canvasId: 'myCanvas',  
    x: 0,  
    y: 0,  
    width: that.canvasStyle.width,  
    height: that.canvasStyle.height,  
    success: imageData => {  
      console.log(imageData, 'imageData')  
    },  
    fail: err => {  
      console.log(err, 'getImageDataErr')  
    },  
    complete: message => {  
      console.log(message 'getImageMessage')  
    }  
  })  
})

更多关于uni-app 调用uni.canvasGetImageData时图片宽高3024 * 4032导致APP崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

那张图片发下

更多关于uni-app 调用uni.canvasGetImageData时图片宽高3024 * 4032导致APP崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你好,图片已经发到问题上了,我试过10801080是ok的 然后这张3024 4032直接炸了…

内存溢出了吧,图片先压缩一下吧

因为我是做图像校正的功能,要对图片数据进行修改处理,目前做法是通过一个canvas找到要截取的内容后,然后新建一个canvas来存储需要截取的内容ImageData,然后再putImageData,压缩之后,canvas转成图片不会模糊吗?

回到顶部