微信小程序开发(图片转移到base64兼容ios)

小程序开发


浏览:972 次

在微信小程序的开发过程中,总是会出现上传图片的问题。互联网上的大多数搜索都是这样的

canvas=wx.createCanvasContext(canvasID)

帆布。drawImage(imgPath,0,0,imgWidth,imgHeight)

帆布绘制(false,()=>{

wx。canvasGetImageData({canvasId:canvasId,x:0,y:0,width:imgWidth,height:imgHeight,成功(res){

让pngData=upng.encode([res.data.buffer],res.width,res.height)

让base64=wx.arrayBufferToBase64(pngData)

}

})})

回答这个问题的童鞋一定没有用iPhone测试过。有了这个代码,iPhone下面的图片就颠倒了。这是微信的坑

wx。canvasGetImageData({canvasId:canvasId,x:0,y:0,width:imgWidth,height:imgHeight,成功(res){

因此,返回的res应该是兼容的,如下所示

让平台=wx.getSystemInfoSync().platform

如果(平台=='ios'){

res=that.reverseImgData(res)

}

此处所需的本地reverseImgData函数也已发布

反转图像数据(res){

var w=相对宽度

var h=相对高度

设con=0

对于(var i=0;i

对于(var j=0;j

con=res.data[i*w*4+j]

res.data[i*w*4+j]=res.data[(h-i-1)*w*4+j]

res.data[(h-i-1)*w*4+j]=con

}

}

返回res

}

这个问题完美地解决了

如果你认为这篇文章写得很好,请毫不犹豫地欣赏它