排查出来是因为只有png格式支持透明,但是上传png格式图片时都被处理成jpg格式了,下面是问题代码:
转二进制的时候强制设为了jpg格式
找到了问题,但是如果直接用canvas.toDataURL().split(',')的话会默认使用png格式,上传jpg也会变成png,我们的目标是使用图片原来的格式
beforeUpload = file => {
...
this.fileType = file.type
}
_dataURLtoBlob = canvas => {
let arr = canvas.toDataURL(this.fileType).split(',')
...
}
所以我们在beforeUpload的时候保存图片格式,在转二进制的时候使用图片原格式即可