@modern-kit/utils
Version:
38 lines (36 loc) • 1.07 kB
JavaScript
const CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER = {
png: "image/png",
jpg: "image/jpeg",
jpeg: "image/jpeg",
webp: "image/webp"
};
async function convertImageToBase64(url, imageType = "png") {
return new Promise((resolve, reject) => {
const img = new Image();
img.src = url;
img.onload = () => {
const canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
try {
const ctx = canvas.getContext("2d");
if (!ctx) {
throw new Error("Failed to get 2d context");
}
ctx.drawImage(img, 0, 0);
const dataUrl = canvas.toDataURL(
CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER[imageType]
);
resolve(dataUrl);
} catch (err) {
console.error(
`Failed to convert the image to base64. message: ${err.message}`
);
reject(err);
}
};
img.onerror = () => reject(new Error("Failed to convert the image to base64"));
});
}
export { convertImageToBase64 };
//# sourceMappingURL=index.mjs.map