canvas 生成图片时,如果是
canvasDom.toDataURL('image/jpeg')
那么图片是黑色底的
如果是
canvasDom.toDataURL('image/png')
那么图片是透明底的
如果希望将图片的透明底色换成白底那么可以设置
const ctx = canvasDom.getContext('2d');
const imageData = ctx.getImageData(0, 0, canvasDom.width, canvasDom.height);
for (let i = 0; i < imageData.data.length; i += 4) {
// 当该像素是透明的,则设置成白色
if (imageData.data[i + 3] === 0) {
imageData.data[i] = 255;
imageData.data[i + 1] = 255;
imageData.data[i + 2] = 255;
imageData.data[i + 3] = 255;
}
}
ctx.putImageData(imageData, 0, 0);
dataURL = canvasDom.toDataURL('image/png');