收藏
回答

canvas.toTempFilePath截图保存图片,图片有严重的残影

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小游戏 Bug Android 7.0 诺基亚6 6.6.7

小游戏渲染模式为Webgl时,canvas.toTempFilePath截图保存图片后,图片有严重的边缘残影。渲染模式为canvas时,没有这个问题。


在小游戏里是正常的,显示没有任何问题。




代码:

            var canvas = cc.game.canvas;

            var height  = canvas.height;

            var width  = canvas.width;


            canvas.toTempFilePath({

                x: 0,

                y: 0,

                width: width,

                height: height,

                destWidth: width,

                destHeight: height,

                success (res) {

                    console.log(res);

                    wx.saveImageToPhotosAlbum({

                        filePath: res.tempFilePath,

                        success:function(r){

                            console.log(r);

                            cc.instantiate(that.tipsPrefab).getComponent('Tips').init(that.node, '保存成功', 0, 0, 500);

                        },

                        fail:function(r){

                            console.log(r);

                        }

                    })

                }

            })


最后一次编辑于  2018-06-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 娇华
    娇华
    2018-06-13

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    也提供下截图正常和截图残影的对比照

    2018-06-13
    赞同
    回复 1
    • 沉默·笙箫
      沉默·笙箫
      2018-06-15

      toTempFilePath 的 fileType 设置为'jpg'时, 没有问题。默认“png”时会出现上述情况。

      2018-06-15
      回复
  • 沉默·笙箫
    沉默·笙箫
    2018-06-13

    这是正常效果:


    我的工程里有cocos2d-js引擎,代码片段也超过200K,提交不了片段。

    这是核心代码:

    saveShotToAlbum:function(){
     
            var that = this;
            wx.getSetting({
                success(res) {
                    if (!res.authSetting['scope.writePhotosAlbum']) {
                        wx.authorize({
                            scope: 'scope.writePhotosAlbum',
                            success() {
                                shotAndSaveImage();
                            },
                            fail: function (res) {
                            }
                        })
                    } else {
                        shotAndSaveImage();
                    }
                }
            });
     
            function shotAndSaveImage(){
                var canvas = cc.game.canvas;
                var height  = canvas.height;
                var width  = canvas.width;
     
                canvas.toTempFilePath({
                    x: 0,
                    y: 0,
                    width: width,
                    height: height,
                    destWidth: width,
                    destHeight: height,
                    success (res) {
                        console.log(res);
     
                        wx.saveImageToPhotosAlbum({
                            filePath: res.tempFilePath,
                            success:function(r){
                                console.log(r);
                            },
                            fail:function(r){
                                console.log(r);
                            }
                        })
                    }
                })
            }
        },


    2018-06-13
    赞同
    回复
  • Special
    Special
    2018-06-15

    你们有线上的小游戏可以复现吗,复现步骤是?

    2018-06-15
    赞同
    回复 7
    • 沉默·笙箫
      沉默·笙箫
      2018-06-15

      这个问题所在的版本还没上线

      2018-06-15
      回复
    • Special
      Special
      2018-06-15回复沉默·笙箫

      这样吧,麻烦你通过微云给一下我代码示例,辛苦了


      https://www.weiyun.com/

      2018-06-15
      回复
    • 沉默·笙箫
      沉默·笙箫
      2018-06-15回复Special

      示例代码包:https://share.weiyun.com/5cTzaKF

      2018-06-15
      回复
    • Special
      Special
      2018-06-15回复沉默·笙箫

      你好问题已复现,我们查一下

      2018-06-15
      回复
    • 沉默·笙箫
      沉默·笙箫
      2018-06-15回复Special

      棒~

      2018-06-15
      回复
    查看更多(2)