canvasToTempFilePath出错
发布于 4 年前 作者 leijun 20220 次浏览 来自 问答

环境:安卓真机

模拟器一切正常,真机无法正常截图,width和height不起作用,但是在不设置destWidth和destHeight的情况下,实际出来的图片在左上角 有想要的图片,但是实际尺寸远大于设置的值。如果设置了dest的两个。则整个图片被缩小,还是左上角一块是想要的图,外侧大范围黑。

这个情况在选择真机图片拍摄,并且进行区域绘制后出现,执行过drawImage(file, ddx,ddy,ddw,ddh,0,0,1000,1000) 这样的操作。

如果只是执行过5参数或者3参数的drawImage则不出现这个情况。希望排除。

5 回复

4月份出现的问题,9月份了还没好,ε=(´ο`*)))唉

与楼主遇到问题一样,各种乱套

现在的解决方式,ios直接设置目标宽度和高度,则正常。

android,得到图片以后,再次把图片写入,用5参数版本的drawImage。

之后再canvasToTempFilePath,就正常了。

算是对两个系统下的bug进行区分管理了。

var targetW = 500;

   var targetH = 500 * ddh / ddw

   this.setData({

     owidth: targetW,

     oheight: targetH,

     oshow: true

   }, function () {

     ctx3.drawImage(file, ddx, ddy, ddw, ddh, 0, 0, targetW, targetH);

     ctx3.draw(false, function () {

 

wx.canvasToTempFilePath({

           canvasId: ‘imageOri’,

           x: 0,

           y: 0,

           width: targetW,

           height: targetH,

           success: function (res) {

这时候用wx.getImageInfo取到save出来的图片,会是错误的。安卓上,大小错误,图像在正确大小的区域内。iOS上,大小错误,图像在错误的大小上撑满显示。

总之和模拟器都不同。

回到顶部