UNPKG

@modern-kit/utils

Version:
1 lines 3.06 kB
{"version":3,"file":"index.cjs","sources":["../../../src/file/convertImageToBlob/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;\ntype CanvasImageType = keyof typeof CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER;\n\nconst createBlobFromCanvas = (canvas: HTMLCanvasElement, format: string) => {\n return new Promise<Blob>((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(`Failed to create blob with format ${format}`));\n }\n }, format);\n });\n};\n\nexport function convertImageToBlob(\n url: string,\n imageType: CanvasImageType = 'png'\n) {\n return new Promise<Blob>((resolve, reject) => {\n const img = new Image();\n\n img.onload = async () => {\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 if (!ctx) throw new Error('Failed to get 2d context');\n\n ctx.drawImage(img, 0, 0);\n\n const result = await createBlobFromCanvas(\n canvas,\n CANVAS_IMAGE_TYPE_TO_FORMAT_MAPPER[imageType]\n );\n resolve(result);\n } catch (error: any) {\n console.error(`Failed to load image. message: ${error.mesaage}`);\n reject(error);\n }\n };\n\n img.onerror = () => {\n reject(new Error('Failed to load image'));\n };\n\n img.src = url;\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,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAA2B,MAAA,KAAmB;AAC1E,EAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,MAAA,CAAO,MAAA,CAAO,CAAC,IAAA,KAAS;AACtB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,kCAAA,EAAqC,MAAM,EAAE,CAAC,CAAA;AAAA,MACjE;AAAA,IACF,GAAG,MAAM,CAAA;AAAA,EACX,CAAC,CAAA;AACH,CAAA;AAEO,SAAS,kBAAA,CACd,GAAA,EACA,SAAA,GAA6B,KAAA,EAC7B;AACA,EAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAA,KAAW;AAC5C,IAAA,MAAM,GAAA,GAAM,IAAI,KAAA,EAAM;AAEtB,IAAA,GAAA,CAAI,SAAS,YAAY;AACvB,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;AAClC,QAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,0BAA0B,CAAA;AAEpD,QAAA,GAAA,CAAI,SAAA,CAAU,GAAA,EAAK,CAAA,EAAG,CAAC,CAAA;AAEvB,QAAA,MAAM,SAAS,MAAM,oBAAA;AAAA,UACnB,MAAA;AAAA,UACA,mCAAmC,SAAS;AAAA,SAC9C;AACA,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,MAChB,SAAS,KAAA,EAAY;AACnB,QAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,+BAAA,EAAkC,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAC/D,QAAA,MAAA,CAAO,KAAK,CAAA;AAAA,MACd;AAAA,IACF,CAAA;AAEA,IAAA,GAAA,CAAI,UAAU,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,sBAAsB,CAAC,CAAA;AAAA,IAC1C,CAAA;AAEA,IAAA,GAAA,CAAI,GAAA,GAAM,GAAA;AAAA,EACZ,CAAC,CAAA;AACH;;;;"}