导出图片

阅读时间约 2 分钟

图片导出概述

G6 提供了将图导出为图片的功能,可以将当前画布内容导出为 DataURL 格式,方便保存、分享或进一步处理。导出的图片会保留画布上的所有可见元素,包括节点、边、组合以及其他自定义图形。

API 参考

Graph.toDataURL(options)

将当前画布导出为 DataURL 格式的图片。

toDataURL(options?: Partial<DataURLOptions>): Promise<string>;

参数

参数描述类型默认值必选
options导出图片配置Partial<DataURLOptions>-

返回值

返回一个 Promise,解析为表示图片的 DataURL 字符串。

DataURLOptions 类型定义

参数类型必选描述
mode'viewport' | 'overall'导出模式
- viewport: 导出视口内容
- overall: 导出整个画布
type'image/png' | 'image/jpeg' | 'image/webp'图片类型
- image/png: PNG 格式
- image/jpeg: JPEG 格式
- image/webp: WebP 格式
encoderOptionsnumber图片质量,仅对 image/jpeg 和 image/webp 有效,取值范围 0 ~ 1

下载图片

G6 5.0 仅提供导出画布为 Base64 图片的 API(toDataURL),如果需要下载图片,可以使用以下方法:

async function downloadImage() {
const dataURL = await graph.toDataURL();
const [head, content] = dataURL.split(',');
const contentType = head.match(/:(.*?);/)![1];
const bstr = atob(content);
let length = bstr.length;
const u8arr = new Uint8Array(length);
while (length--) {
u8arr[length] = bstr.charCodeAt(length);
}
const blob = new Blob([u8arr], { type: contentType });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'graph.png';
a.click();
}

注意

导出的图片内容可能不会包含完整的画布内容,导出范围仅包含 Graph 画布中的内容。部分插件使用了自定义的容器、画布等,这部分内容不会出现在导出的图片中。

上一篇
事件监听
下一篇
坐标转换