环境:安卓真机
模拟器一切正常,真机无法正常截图,width和height不起作用,但是在不设置destWidth和destHeight的情况下,实际出来的图片在左上角 有想要的图片,但是实际尺寸远大于设置的值。如果设置了dest的两个。则整个图片被缩小,还是左上角一块是想要的图,外侧大范围黑。
这个情况在选择真机图片拍摄,并且进行区域绘制后出现,执行过drawImage(file, ddx,ddy,ddw,ddh,0,0,1000,1000) 这样的操作。
如果只是执行过5参数或者3参数的drawImage则不出现这个情况。希望排除。
现在的解决方式,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上,大小错误,图像在错误的大小上撑满显示。
总之和模拟器都不同。