UNPKG

magica

Version:

ImageMagick for browser and Node.js, easy setup, high level API and Command Line Interface, including WASM binary for an easy setup.

61 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const js_base64_1 = require("js-base64"); function dataToUrl(data, mimeType, fileName) { return base64ToUrl(dataToBase64(data), mimeType, fileName); } exports.dataToUrl = dataToUrl; function dataToBase64(data) { return js_base64_1.Base64.encode(data); } exports.dataToBase64 = dataToBase64; /** * Creates a DataUrl like `data:image/jpeg;name=hindenburg.jpg;base64,` using given base64 content, mimeType and fileName. */ function base64ToUrl(base64, mimeType, fileName) { return `data:${mimeType}${fileName ? `;name=${fileName}` : ''};base64,${base64}`; } exports.base64ToUrl = base64ToUrl; function urlToBase64(s) { return s.substring(s.indexOf(';base64,') + ';base64,'.length); } exports.urlToBase64 = urlToBase64; function urlToData(s) { return js_base64_1.Base64.atob(urlToBase64(s)); } exports.urlToData = urlToData; function isBase64(str) { if (str === '' || str.trim() === '') { return false; } try { return js_base64_1.Base64.btoa(js_base64_1.Base64.atob(str)) == str; } catch (err) { return false; } } exports.isBase64 = isBase64; /** * Extracts the name of a data url like `data:image/jpeg;name=hindenburg.jpg;base64,`..., if any. */ function getDataUrlFileName(url) { let p = url && url.split(';base64,'); const q = p.length ? p[0].split(';').find(s => s.includes('name=')) : ''; p = q ? q.split('=') : []; return p[p.length - 1]; } exports.getDataUrlFileName = getDataUrlFileName; function arrayBufferToBase64(buffer) { var binary = arrayBufferToString(buffer); return window.btoa(binary); } exports.arrayBufferToBase64 = arrayBufferToBase64; function arrayBufferToString(buffer) { var binary = ''; var bytes = [].slice.call(new Uint8Array(buffer)); bytes.forEach((b) => binary += String.fromCharCode(b)); return binary; } exports.arrayBufferToString = arrayBufferToString; //# sourceMappingURL=base64.js.map