UNPKG

javascript-binary-converter

Version:

A utility package to quickly handle and convert various Javascript binary objects

41 lines (30 loc) 1.17 kB
import { isNode } from "./crossPlatform"; export function blobToBase64(blob: Blob, config: { appendDataUrl?: boolean } = { appendDataUrl: false }) { if (isNode) { return blobToBase64_Node(blob) } return new Promise<string>((resolve) => { const reader = new FileReader(); reader.readAsDataURL(blob) reader.onloadend = () => { const dataUrl = reader.result as string resolve(config?.appendDataUrl ? dataUrl : dataUrl.split(',')[1]) }; }); } async function blobToBase64_Node(blob: Blob) { const arrayBuffer = await blob.arrayBuffer() const uint8 = new Uint8Array(arrayBuffer); return Buffer.from(uint8).toString('base64');//TODO: this might be problematic. Explore a different solution. } export async function blobToCanvas(blob: Blob) { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var img = new Image(); img.src = URL.createObjectURL(blob); await new Promise<Event>((res) => img.onload = res); canvas.height = img.height; canvas.width = img.width ctx!.drawImage(img, 0, 0, img.width, img.height); return canvas; }