UNPKG

@modern-kit/utils

Version:
1 lines 2.4 kB
{"version":3,"file":"index.cjs","sources":["../../../src/file/convertImageToBase64/index.ts"],"sourcesContent":["const CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER = {\n png: 'image/png',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n webp: 'image/webp',\n} as const;\nexport type CanvasImageType = keyof typeof CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER;\n\nexport async function convertImageToBase64(\n url: string,\n imageType: CanvasImageType = 'png'\n) {\n return new Promise<string>((resolve, reject) => {\n const img = new Image();\n img.src = url;\n\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n\n try {\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Failed to get 2d context');\n }\n\n ctx.drawImage(img, 0, 0);\n\n const dataUrl = canvas.toDataURL(\n CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER[imageType]\n );\n resolve(dataUrl);\n } catch (err: any) {\n console.error(\n `Failed to convert the image to base64. message: ${err.message}`\n );\n reject(err);\n }\n };\n img.onerror = () =>\n reject(new Error('Failed to convert the image to base64'));\n });\n}\n"],"names":[],"mappings":";;AAAA,MAAM,kCAAA,GAAqC;AAAA,EACzC,GAAA,EAAK,WAAA;AAAA,EACL,GAAA,EAAK,YAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAGA,eAAsB,oBAAA,CACpB,GAAA,EACA,SAAA,GAA6B,KAAA,EAC7B;AACA,EAAA,OAAO,IAAI,OAAA,CAAgB,CAAC,OAAA,EAAS,MAAA,KAAW;AAC9C,IAAA,MAAM,GAAA,GAAM,IAAI,KAAA,EAAM;AACtB,IAAA,GAAA,CAAI,GAAA,GAAM,GAAA;AAEV,IAAA,GAAA,CAAI,SAAS,MAAM;AACjB,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,MAAA,MAAA,CAAO,QAAQ,GAAA,CAAI,KAAA;AACnB,MAAA,MAAA,CAAO,SAAS,GAAA,CAAI,MAAA;AAEpB,MAAA,IAAI;AACF,QAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAElC,QAAA,IAAI,CAAC,GAAA,EAAK;AACR,UAAA,MAAM,IAAI,MAAM,0BAA0B,CAAA;AAAA,QAC5C;AAEA,QAAA,GAAA,CAAI,SAAA,CAAU,GAAA,EAAK,CAAA,EAAG,CAAC,CAAA;AAEvB,QAAA,MAAM,UAAU,MAAA,CAAO,SAAA;AAAA,UACrB,mCAAmC,SAAS;AAAA,SAC9C;AACA,QAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,MACjB,SAAS,GAAA,EAAU;AACjB,QAAA,OAAA,CAAQ,KAAA;AAAA,UACN,CAAA,gDAAA,EAAmD,IAAI,OAAO,CAAA;AAAA,SAChE;AACA,QAAA,MAAA,CAAO,GAAG,CAAA;AAAA,MACZ;AAAA,IACF,CAAA;AACA,IAAA,GAAA,CAAI,UAAU,MACZ,MAAA,CAAO,IAAI,KAAA,CAAM,uCAAuC,CAAC,CAAA;AAAA,EAC7D,CAAC,CAAA;AACH;;;;"}