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
JavaScript
;
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