main
1import crypto from "node:crypto";
2
3export function getBase64ImageInfo(
4 src: string,
5): { filename: string; base64Data: string; ext: string } | null {
6 const match = src.match(/^data:image\/([^;]+);base64,(.+)$/);
7 if (!match) {
8 return null;
9 }
10
11 const ext = match[1] === "svg+xml" ? "svg" : match[1];
12 const base64Data = match[2];
13
14 const hash = crypto
15 .createHash("sha256")
16 .update(base64Data)
17 .digest("hex")
18 .slice(0, 12);
19
20 const filename = `${hash}.${ext}`;
21
22 return { filename, base64Data, ext };
23}