如何在React JS中使用html2canvas将react组件转换为图像?
你好,朋友们,我正在使用 React JS 中的图像比较器应用程序...我尝试在比较后下载图像,但不能。
我的应用程序
我的功能
import * as html2canvas from "html2canvas";
import { saveAs as save } from "file-saver";
//Convert component to Canvas
function canvasToBlob(canvas) {
return new Promise((resolve, reject) => {
try {
canvas.toBlob((blob) => {
if (!blob) {
return reject(new Error("Could not convert canvas to blob"));
}
return resolve(blob);
});
} catch (e) {
return reject(e);
}
});
}
//Convert canvas to base64
function blobToBase64(blob) {
return new Promise((resolve, reject) => {
try {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function () {
if (typeof reader.result === "string") {
return resolve(reader.result);
} else {
return reject(new Error("Could not convert blob to base64"));
}
};
} catch (e) {
return reject(e);
}
});
}
//Export base64 to image
export async function exportDiv(querySelector, fileName) {
const el = document.querySelector(querySelector);
if (!el) {
return "";
}
const canvas = await html2canvas(el, {
backgroundColor: null,
});
const blob = await canvasToBlob(canvas);
const base64 = await blobToBase64(blob);
save(base64, fileName);
}
这是当我尝试将组件导出到图像时出现的错误
如果有人有解决方案,请不要犹豫。 .. 提前致谢
Hello friends I'm on an image comparator application in React JS... I try to download the image after comparison but I can't.
My App
My functions
import * as html2canvas from "html2canvas";
import { saveAs as save } from "file-saver";
//Convert component to Canvas
function canvasToBlob(canvas) {
return new Promise((resolve, reject) => {
try {
canvas.toBlob((blob) => {
if (!blob) {
return reject(new Error("Could not convert canvas to blob"));
}
return resolve(blob);
});
} catch (e) {
return reject(e);
}
});
}
//Convert canvas to base64
function blobToBase64(blob) {
return new Promise((resolve, reject) => {
try {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function () {
if (typeof reader.result === "string") {
return resolve(reader.result);
} else {
return reject(new Error("Could not convert blob to base64"));
}
};
} catch (e) {
return reject(e);
}
});
}
//Export base64 to image
export async function exportDiv(querySelector, fileName) {
const el = document.querySelector(querySelector);
if (!el) {
return "";
}
const canvas = await html2canvas(el, {
backgroundColor: null,
});
const blob = await canvasToBlob(canvas);
const base64 = await blobToBase64(blob);
save(base64, fileName);
}
Here is the error I get when I try to export my component to image
If anyone has a solution please don't hesitate... Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试对 html2canvas 使用不同的导入并确保您使用的是版本 1.4.1:
Try with different import for html2canvas and make sure you are using version 1.4.1: