weImageFilters icon indicating copy to clipboard operation
weImageFilters copied to clipboard

选择图片后,canvas里的图片是变形的

Open badbyeseason opened this issue 6 years ago • 4 comments

选择图片后,如果图片长宽比例不是1:1的话,canvas里的图片就会是变形的,导致滤镜处理后的图片也是变形的,影响使用。

badbyeseason avatar Apr 18 '19 06:04 badbyeseason

的确没有做过适配,之后看看

tomfriwel avatar Apr 18 '19 08:04 tomfriwel

的确没有做过适配,之后看看

包括canvas的大小,可能做成不同机型的不同宽度分辨率自适应会更好些。

badbyeseason avatar Apr 18 '19 09:04 badbyeseason

的确没有做过适配,之后看看

包括canvas的大小,可能做成不同机型的不同宽度分辨率自适应会更好些。

你可以在上传图片的时候去查看图片的信息,然后把宽高赋值给你的canvas即可。还要给helper对象也重新赋予宽高。 下面是index.js修改后的代码,你可以参考下,不过这个代码的原作者在11年就没更新过代码了- -建议慎用

wx.chooseImage({
            count: 1,
            success: function (res) {
                if (res.tempFilePaths.length) {
                    let path = res.tempFilePaths[0]
                    wx.getImageInfo({
                      src: path,
                      success: function(res) {
                        let w =  'canvasObj.cWidth';
                        let h = 'canvasObj.cHeight';
                        
                        z.setData({
                          [w]: res.width / 5,
                          [h]: res.height / 5
                        })
                        console.log(helper);
                        helper.canvasInfo.height = res.height / 5;
                        helper.canvasInfo.width = res.width / 5;
                        helper.initCanvas(path, () => {
                          z.setData({
                            selected: 1
                          })
                        })
                      }
                    })
                }
            },
        })

sai2333 avatar Sep 09 '19 01:09 sai2333

的确没有做过适配,之后看看

包括canvas的大小,可能做成不同机型的不同宽度分辨率自适应会更好些。

你可以在上传图片的时候去查看图片的信息,然后把宽高赋值给你的canvas即可。还要给helper对象也重新赋予宽高。 下面是index.js修改后的代码,你可以参考下,不过这个代码的原作者在11年就没更新过代码了- -建议慎用

wx.chooseImage({
            count: 1,
            success: function (res) {
                if (res.tempFilePaths.length) {
                    let path = res.tempFilePaths[0]
                    wx.getImageInfo({
                      src: path,
                      success: function(res) {
                        let w =  'canvasObj.cWidth';
                        let h = 'canvasObj.cHeight';
                        
                        z.setData({
                          [w]: res.width / 5,
                          [h]: res.height / 5
                        })
                        console.log(helper);
                        helper.canvasInfo.height = res.height / 5;
                        helper.canvasInfo.width = res.width / 5;
                        helper.initCanvas(path, () => {
                          z.setData({
                            selected: 1
                          })
                        })
                      }
                    })
                }
            },
        })

好的,感谢!

badbyeseason avatar Sep 16 '19 05:09 badbyeseason