Javascript Kineticjs导出为jpeg用白色填充透明像素?

Javascript Kineticjs导出为jpeg用白色填充透明像素?,javascript,html,image,canvas,kineticjs,Javascript,Html,Image,Canvas,Kineticjs,我想导出我的Kineticjs舞台: stage.toDataURL({ mimeType : "image/jpeg", callback : function() {} }); 当我导出此文件时: 导出后,我得到以下图像: 所有透明像素都设置为黑色 如何在导出之前将所有透明像素设置为白色?问题 这是因为在KineticJS阶段,背景是透明的:rgba(0,0,0,0) rgba中的最后一个零是alpha==不透明度 但是jpeg不允许不同的不透明性。它只允许纯色 因此,当您使

我想导出我的Kineticjs舞台:

stage.toDataURL({
  mimeType : "image/jpeg",
  callback : function() {}
}); 
当我导出此文件时:

导出后,我得到以下图像:

所有透明像素都设置为黑色


如何在导出之前将所有透明像素设置为白色?问题

这是因为在KineticJS阶段,背景是透明的:rgba(0,0,0,0)

rgba中的最后一个零是alpha==不透明度

但是jpeg不允许不同的不透明性。它只允许纯色

因此,当您使用toDataURL保存阶段时,jpeg将使背景不透明度为纯色==rgba(0,0,0,1)

因此,在保存jpeg时,透明像素始终写为黑色

解决方案

添加一个用白色(或其他颜色)填充舞台的背景矩形,以便jpeg知道背景像素使用哪种颜色


演示:

你能为你的想法举个例子吗?
rgba(0,0,0,1) is black.