将画布对象另存为图像-黑色背景
Saving a canvas object as an image - Black background
这是一个稍微令人沮丧的问题。我正在使用一个名为Javascript InfoVis Toolkit的第三方库来生成画布图像图表。
因此,图表被构建并插入到画布中。该图像的背景是白色的(像css中的样式),但当我转换图像时(我尝试了不同的库并一起打开了一个新窗口),它是黑色的。
<script type="text/javascript">
function saveImage(div_id) {
var canvas = document.getElementById("chart2-canvas");
Canvas2Image.saveAsJPEG(canvas);
}
</script>
<script type="text/javascript">
function init(jsonString, num){
var json = jsonString
var inj = 'chart' + num
var st = new $jit.ST({
injectInto: inj,
offsetX:25,
offsetY:900,
transition: $jit.Trans.Quart.easeInOut,
orientation: 'top',
Node: {
height:100,
width:100,
type: 'rectangle',
color: '#EEE',
overridable: true
},
Edge: {
type: 'line',
color: '#512',
overridable: true
},
Label: {
type: 'Native',
color: '#000000'
},
Tips: {
enable: false,
onShow: function(tip, node, isLeaf, domElement){
var html = "<p><b>" + node.name + "</b></p><br/>";
var data = node.data
if(data.image) {
html += "<img src='""+ data.image +"'" width=50 height=65 class='"album'" />";
}
if(data.email) {
html += "<p>"+data.email+"</p>";
}
if(data.title) {
html += "<p>"+data.title+"</p>";
}
if(data.phone) {
html += "<p>"+data.phone+"</p>";
}
tip.innerHTML = html;
}
}/*,
onCreateLabel:function(label,node) {
alert(node.name);
alert(node.data);
var html = "<b>" + node.name + "</b>";
var data = node.data;
if(data.title) {
html += "<br/><br/><i>" + data.title + "</i>";
}
label.id = node.id + "_" + num;
label.innerHTML = html;
var style = label.style;
style.width = 100 + 'px';
style.height = 100 + 'px';
style.cursor = 'pointer';
style.fontSize = '0.8em';
style.textAlign = 'center';
style.color='#321';
}*/
});
st.loadJSON(json);
st.compute();
st.onClick(st.root);
}
</script>
<a href="#" onclick="javascript:saveImage('chart1');">Save Image</a>
<g:each in="${allJSON}" status="h" var="jsonInstance">
<div id="chart${h+1}">
<script type="text/javascript">
init(${jsonInstance}, ${h+1});
</script>
</div>
</g:each>
概括一下:
- 我在代码中生成图表,所有图表都有白色背景(没错)
- 我保存了图表2的图像(作为测试),但保存的图像是黑色的——显然忽略了画布背景
谢谢你的帮助!
您确定画布没有透明背景吗?JPEGs不支持透明背景。
如果它确实有透明背景,请先尝试在上面绘制白色背景,然后将其另存为JPEG。
相关文章:
- 无法在本地计算机中将画布另存为图像
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 更改“将图像另存为”的操作以重定向到相应的网页
- 如何为图像创建“另存为”按钮
- 如何定义图像'另存为'大小
- 使用javascript将画布另存为图像
- 嵌套画布另存为单个图像
- 将画布对象另存为图像-黑色背景
- 将“图像另存为”链接到其他图像
- 将谷歌地图另存为图像 - 使用javascript(能够截取屏幕截图)
- 是否有一个 javascript 库可以在图像上注释并将注释另存为服务器中的图像
- 如何将画布另存为 PNG 图像
- 如何在jsp中单击按钮时将代码添加到jqPlot条形图另存为图像
- 将画布另存为图像 Internet Explorer
- 如何使用 canvas.toDataURL() 将画布另存为图像
- 模拟将图像另存为
- 将画布另存为服务器上的图像时出现 setRequestHeader 错误
- 将 Iframe 的源另存为桌面上的图像
- 如何防止图像另存为+防止图像拖动&拖放到桌面+阻止桌面浏览器上的屏幕截图
- 如何在单击'时设置文件/图像的名称;将图像另存为'