收藏
回答

【高性能模式+微信小游戏】Canvas截图分享显示空白图问题如何解决?

// 问题描述:以下代码在开发工具模拟器中正常,未开启高性能模式下也正常,仅发现高性能模式下真机表现为空白

// 代码如下
const imageSize = 500;
const imageData = wx.createImageData(imageSize, imageSize) as ImageData;
const data = [...];
imageData.data.set(data);
console.log('imageData', imageData);

// 创建Canvas
const canvas = wx.createCanvas();
canvas.width = imageSize;
canvas.height = imageSize;

const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;
if (!ctx) {
  console.warn('Canvas not supported');
  return;
}

// 将处理后的图像数据绘制到canvas上
ctx.putImageData(imageData, 0, 0);

// 保存临时文件
const tempFilePath = canvas.toTempFilePathSync({});
console.log('tempFilePath', tempFilePath);

// 清理Canvas
ctx.clearRect(0, 0, canvas.width, canvas.height);

// 分享图片
wx.showShareImageMenu({
  path: tempFilePath,
  needShowEntrance: true,
  success: () => {},
  fail: () => {},
});


偶尔会报下图这个错误:

最后一次编辑于  2025-01-20
回答关注问题邀请回答
收藏

3 个回答

  • 你快一点儿
    你快一点儿
    2025-01-27

    解决了吗


    2025-01-27
    有用
    回复
  • 浚枢
    浚枢
    2025-01-20

    网友提供的思路:先把canvas用canvas方法保存,这个地方用两个div 一个是canvas 一个是img 当点击保存的时候 先把canvas保存然后生成的路径放在img上 同时控制好两个div的隐藏于显示就可以了

    2025-01-20
    有用
    回复
  • 智能回答 智能回答 该问答由AI生成
    2025-01-20
    有用
登录 后发表内容