小程序
小游戏
企业微信
微信支付
扫描小程序码分享
Canvas.createImage()只能调用一次?想画两张图片,永远只有前面的画出来,注释掉前面的,后面就能画出来。调用两次,第二张就无法画出来。
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
假设小程序底层有一个set数组,当你Canvas.createImage()的时候就是给set数组add一个元素,当你第一次用的时候 是没问题的 第二次使用同个url的时候就会出现 不报错但是不运行,解决方法就是在你url后面加个时间戳即可
url = url+"?timertamp=" + new Date().getTime().toString();
请问解决了吗?
我也遇到了,文字后放上去的,在图片的下面
遇到同样问题,请问解决了吗?
你好,请问你的问题解决了吗,我也碰到了同样的问题
我有同样的问题,我用的官方的示例代码,在开发者工具中没有问题,真机测试有问题,第一次可以绘制,等二次不会进入onload所以一直在await,当我将图片的地址添加一个动态的参数问题消失.
我的真机测试设备:Samsung Galaxy S20
微信版本: Version8.0.28
这是我的示例代码:
const IMAGE_URL="https://dog.ceo/img/dog-ceo-zine.jpg" // 创建离屏 2D canvas 实例 const canvas = wx.createOffscreenCanvas({type: '2d', width: 300, height: 150}) // 获取 context。注意这里必须要与创建时的 type 一致 const context = canvas.getContext('2d') // 创建一个图片 const image = canvas.createImage() // 等待图片加载,第二次执行时会卡住, await new Promise(resolve => { image.onload = resolve // image.src = IMAGE_URL // 要加载的图片 url image.src=IMAGE_URL+"?t="+(new Date().getTime()) ) / 把图片画到离屏 canvas 上 context.clearRect(0, 0, 300, 150) context.drawImage(image, 0, 0, 300, 150) // 获取画完后的数据 const imgData = context.getImageData(0, 0, 300, 150)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
bg.src="https://.......1";
bg.onload = () => {
textCtx.beginPath();
textCtx.drawImage(bg, 10,10, 200,200);
}
let bg2 = textCanvas.createImage()
bg2.src="https://.......2";
bg2.onload = () => {
textCtx.beginPath();
textCtx.drawImage(bg2, 50,300, 200,200);
}
bg2 无法画,注释掉bg,bg2就正常画,或者bg正常画后,bg.src再次赋值为"https://.......2";也无法画。
假设小程序底层有一个set数组,当你Canvas.createImage()的时候就是给set数组add一个元素,当你第一次用的时候 是没问题的 第二次使用同个url的时候就会出现 不报错但是不运行,解决方法就是在你url后面加个时间戳即可
url = url+"?timertamp=" + new Date().getTime().toString();
请问解决了吗?
我也遇到了,文字后放上去的,在图片的下面
遇到同样问题,请问解决了吗?
你好,请问你的问题解决了吗,我也碰到了同样的问题
我有同样的问题,我用的官方的示例代码,在开发者工具中没有问题,真机测试有问题,第一次可以绘制,等二次不会进入onload所以一直在await,当我将图片的地址添加一个动态的参数问题消失.
我的真机测试设备:Samsung Galaxy S20
微信版本: Version8.0.28
这是我的示例代码:
const IMAGE_URL="https://dog.ceo/img/dog-ceo-zine.jpg" // 创建离屏 2D canvas 实例 const canvas = wx.createOffscreenCanvas({type: '2d', width: 300, height: 150}) // 获取 context。注意这里必须要与创建时的 type 一致 const context = canvas.getContext('2d') // 创建一个图片 const image = canvas.createImage() // 等待图片加载,第二次执行时会卡住, await new Promise(resolve => { image.onload = resolve // image.src = IMAGE_URL // 要加载的图片 url image.src=IMAGE_URL+"?t="+(new Date().getTime()) ) / 把图片画到离屏 canvas 上 context.clearRect(0, 0, 300, 150) context.drawImage(image, 0, 0, 300, 150) // 获取画完后的数据 const imgData = context.getImageData(0, 0, 300, 150)