a***@163.com
a***@163.com
  • 发布:2019-07-11 10:35
  • 更新:2022-02-21 10:08
  • 阅读:1802

【报Bug】ios画布改变长宽之后,再生成图片报错:canvasToTempFilePath:fail 不是DataURL数据

分类:uni-app

[内容]
获取图片的宽高,改变画布宽高为图片宽高,再生成图片

[步骤]
1、获取图片的长宽信息
2、修改画布的长宽
3、将图片画到画布上
4、调用uni.canvasToTempFilePath 生成图片

[结果]
报错:{
"errMsg": "canvasToTempFilePath:fail 不是DataURL数据,http://ask.dcloud.net.cn/article/282"
}

[期望]
可以生成图片得到临时路径

[HBuilderX]
[IDE版本号]

HBuilder X - Release Notes

======================================

2.0.4.20190706-alpha

[windows版本号]

[mac版本号]
10.12.6 (16G1408)

[iOS版本号]
12.3.1
[手机型号]
iphone 7 Plus MNRM2CH/A

[可重现代码片段] <canvas canvas-id="myCanvas" class="myCanvas" style="{height: canvasInfo.height + 'px', width: canvasInfo.width + 'px'}"> </canvas>
data() {
return {
canvasInfo:{// 画布宽高
width: 200,
height: 200
}
}
},

// 改变画布大小
self.canvasInfo = {
width: res.width,
height: res.height
}
uni.canvasToTempFilePath({
canvasId: 'myCanvas',
success: function(res) {
},
fail: function(err){
console.log(err)
uni.showModal({
title: '提示',
content: '生成图片失败'
})
},
complete: () =>{
uni.hideLoading();
}
})

联系方式

微信号:qqabcshan

2019-07-11 10:35 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

仅在iOS 的app端存在此问题吗?

  • a***@163.com (作者)

    是的,ios有,安卓没有这个问题

    2019-07-17 09:55

  • DCloud_UNI_GSQ

    回复 a***@163.com: 改变宽高以后iOS上的canvas是不是空白了?

    2019-07-17 11:27

希余

希余

请问解决了吗

  • DCloud_UNI_GSQ

    改变宽高以后iOS上的canvas是不是空白了?

    2020-03-09 18:17

  • 1***@163.com

    回复 DCloud_UNI_GSQ: 这个空白我也碰到了 请问是什么原因呢

    2022-02-21 10:10

  • 1***@qq.com

    回复 1***@163.com: 你解决了吗?我也遇到这个问题了

    2022-03-24 11:23

  • 1***@qq.com

    回复 DCloud_UNI_GSQ: 我这边是iPhone 12以上的手机出现这个问题,12以下没有。

    2022-03-24 11:33

  • DCloud_UNI_GSQ

    回复 1***@qq.com: 还有没有其他规律?

    2022-03-24 11:39

咖喱给给

咖喱给给

请问解决了吗?我这里也有这个问题

1***@qq.com

1***@qq.com

现在是2021/5/13 使用的3.1.14alpha版本,同样是7plus 出问题, canvasToTempFilePath:fail 不是DataURL数据,安卓 H5 iphone11没有这个问题!!!

  • DCloud_UNI_GSQ

    详细的复现步骤提供一下

    2021-06-07 16:26

  • 1***@qq.com

    回复 DCloud_UNI_GSQ: 找到了,基本都是临界值问题,不知道为什么 减少1px的宽高 并且向下取整就好了

    2021-09-28 14:57

1***@163.com

1***@163.com

我也碰到了这个问题,iOS 有时候能成功 有时候失败, 报错为canvasToTempFilePath方法报错{"errMsg":"canvasToTempFilePath:fail 不是DataURL数据,https://ask.dcloud.net.cn/article/282"}, 安卓没有,请问是什么原因

  • DCloud_UNI_GSQ

    找一下规律

    2022-02-21 11:16

  • 1***@163.com

    回复 DCloud_UNI_GSQ: 目前发现从相册获取图片可以,拍照得到的图片不行,但是看了上面的是不是因为画布的宽高设置有问题?

    2022-02-21 11:27

  • DCloud_UNI_GSQ

    回复 1***@163.com: 继续对比一下相册内的大图

    2022-02-21 11:37

  • 4***@qq.com

    回复 DCloud_UNI_GSQ: IOS15.1;先拍照了两张图,一个4:3,一个16:9,选择4:3的图正常,选择16:9的图出现白屏;选择截屏的图也是出现白屏;调拍照获取到的图片也是白屏

    2022-03-30 16:51

  • 4***@qq.com

    回复 4***@qq.com: 出现图片白屏是因为在canvasToTempFilePath里传了宽高,如果没有传宽高参数,是报错:"errMsg": "canvasToTempFilePath:fail 不是DataURL数据,https://ask.dcloud.net.cn/article/282"

    2022-03-30 16:53

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