-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Describe the bug / 问题描述
Reproduction link / 复现链接
No response
Steps to Reproduce the Bug or Issue / 重现步骤
-
随便选取一个示例加上
plugins: [ { type: 'background', background: 'red' } ] -
导出
const a = document.createElement('a') const graphDataUrl = await this.graph.toDataURL({ mode: 'overall' }) a.href = graphDataUrl a.download = 'graph.jpg' a.click()
会发现没有背景 -
将dataUrl放在img加载,然后绘制在canvas,内容绘制不出
`
// 将DataURL转换为Canvas并添加背景颜色
function dataURLToCanvas(dataURL, backgroundColor = '#f0f2f5') {
return new Promise((resolve, reject) => {
// 创建Image对象
const img = new Image();// 设置图片加载完成后的回调
img.onload = function() {
// 创建Canvas元素
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');// 设置Canvas尺寸与图片相同
canvas.width = img.width;
canvas.height = img.height;// 第一步:填充背景颜色
ctx.fillStyle = backgroundColor;
ctx.fillRect(0, 0, canvas.width, canvas.height);// 第二步:绘制图片(这会覆盖在背景之上)
ctx.drawImage(img, 0, 0);// 返回Canvas元素
resolve(canvas);
};// 设置图片加载失败的回调
img.onerror = function() {
reject(new Error('Failed to load image from DataURL'));
};// 将DataURL设置为图片源
img.src = dataURL;
});
}
// 使用示例
async function convertAndAddBackground() {
try {
// 假设 dataURL 是你已有的DataURL
const canvas = await dataURLToCanvas(dataURL, '#f0f2f5');
// 现在你可以使用这个Canvas做进一步操作
// 例如转换为其他格式或直接显示在页面上
document.body.appendChild(canvas);
// 或者转换为Blob进行下载
canvas.toBlob((blob) => {
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'image-with-background.png';
a.click();
URL.revokeObjectURL(url);
}, 'image/png');
} catch (error) {
console.error('Error:', error);
}
}
`
4. 直接使用drawImage来拷贝拓补的canvas,也是空
Version / 版本
Please select / 请选择
OS / 操作系统
- macOS
- Windows
- Linux
- Others / 其他
Browser / 浏览器
- Chrome
- Edge
- Firefox
- Safari (Limited support / 有限支持)
- IE (Nonsupport / 不支持)
- Others / 其他