用canvasPutImageData在隐藏的canvas上作图后,导出失败
发布于 6 年前 作者 caowei 14374 次浏览 来自 问答

Bug:

用canvasPutImageData在隐藏的canvas上作图后,导出图片失败

画布隐藏,然后用canvasPutImageData作图,然后导出图片是到不出来的,把画布Hidden属性去掉就能导出了

这个应该和draw一样在隐藏的画布上也能作图

10 回复

你好,请提供一下机型

我暂时先把那个功能删掉了,我晚上在做一个复现一下,APPID:wxf5a51ffeb1f8aac9

小程序审核都7天了,帮忙加加急,太慢了

二维码过期了,你上传一个开发版,然后发下你的小程序的appid吧~

你现在还在吗,我给你复现

我们写了一个demo,在hidden的情况下,也是可以正常导出的哦

私聊查下这个问题,AlbieLeung

你是按我上面的代码做的demo吗

要先canvasGetImageData,在修改data,再canvasPutImageData,再canvasToTempFilePath

canvas 隐藏的时候无法导出图片啊。

getImageData的时候canvas隐藏了吗

关键代码

wx.downloadFile({

     url: https://cwrjl.com/api/GetInternetPic?imgPath= + temp.url, //仅为示例,并非真实的资源

     success: function (res) {

       fontctx.drawImage(res.tempFilePath, 0, 0, temp.width, temp.height)

       fontctx.draw(false,function()

       {

         wx.canvasGetImageData({

           canvasId: ‘fontchangeCanvas’,

           x: 0,

           y: 0,

           width: temp.width,

           height: temp.height,

           success(res) {

             for(let i=0;i<res.data.length;i++)

             {

               if ((i + 1) % 4 == 0 && res.data[i]!=0)

               {res.data[i-3]=255;

               }

             }

             let data=res.data;

             console.log(data);

             wx.canvasPutImageData({

               canvasId: ‘fontchangeCanvas’,

               x: 0,

               y: 0,

               width: temp.width,

               data: data,

               success(res) {

                 wx.canvasToTempFilePath({

                   x: 0,

                   y: 0,

                   width: temp.width,

                   height: temp.height,

                   canvasId: ‘fontchangeCanvas’,

                   success: function (res) {

                     console.log(res.tempFilePath)

                     let alertstring = ‘viewlist[1].url’

                     that.setData({

                       [alertstring]: res.tempFilePath

 

                     });

                   }

                 })

                }

             })

           }

         })

       })

 

回到顶部