@nlabs/gothamjs
Version:
Platform
48 lines (47 loc) • 6.07 kB
JavaScript
/**
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
*/ export const convertFileToBase64 = (file, maxSize)=>new Promise((resolve, reject)=>{
const reader = new FileReader();
reader.onload = ()=>{
const image = new Image();
image.onload = ()=>{
// Resize the image
const canvas = document.createElement('canvas');
const { height, width } = image;
let updatedHeight = height;
let updatedWidth = width;
if (width > height) {
if (width > maxSize) {
updatedHeight *= maxSize / width;
updatedWidth = maxSize;
}
} else if (height > maxSize) {
updatedWidth *= maxSize / height;
updatedHeight = maxSize;
}
canvas.width = updatedWidth;
canvas.height = updatedHeight;
canvas.getContext('2d')?.drawImage(image, 0, 0, updatedWidth, updatedHeight);
const dataUrl = canvas.toDataURL('image/jpeg');
// const resizedImage = dataURLToBlob(dataUrl);
resolve(dataUrl);
// $.event.trigger({
// type: 'imageResized',
// blob: resizedImage,
// url: dataUrl
// });
};
const originalBase64 = reader.result;
image.src = originalBase64;
};
// reader.onloadend = () => {
// const base64: string = reader.result as string;
// resolve(base64);
// };
reader.onerror = (event)=>{
reject(event);
};
reader.readAsDataURL(file);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9pbWFnZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgY29uc3QgY29udmVydEZpbGVUb0Jhc2U2NCA9IChmaWxlOiBGaWxlLCBtYXhTaXplOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIFJlc2l6ZSB0aGUgaW1hZ2VcbiAgICAgICAgY29uc3QgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICBjb25zdCB7aGVpZ2h0LCB3aWR0aH0gPSBpbWFnZTtcbiAgICAgICAgbGV0IHVwZGF0ZWRIZWlnaHQ6IG51bWJlciA9IGhlaWdodDtcbiAgICAgICAgbGV0IHVwZGF0ZWRXaWR0aDogbnVtYmVyID0gd2lkdGg7XG5cbiAgICAgICAgaWYod2lkdGggPiBoZWlnaHQpIHtcbiAgICAgICAgICBpZih3aWR0aCA+IG1heFNpemUpIHtcbiAgICAgICAgICAgIHVwZGF0ZWRIZWlnaHQgKj0gbWF4U2l6ZSAvIHdpZHRoO1xuICAgICAgICAgICAgdXBkYXRlZFdpZHRoID0gbWF4U2l6ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZihoZWlnaHQgPiBtYXhTaXplKSB7XG4gICAgICAgICAgdXBkYXRlZFdpZHRoICo9IG1heFNpemUgLyBoZWlnaHQ7XG4gICAgICAgICAgdXBkYXRlZEhlaWdodCA9IG1heFNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMud2lkdGggPSB1cGRhdGVkV2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB1cGRhdGVkSGVpZ2h0O1xuICAgICAgICBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKT8uZHJhd0ltYWdlKGltYWdlLCAwLCAwLCB1cGRhdGVkV2lkdGgsIHVwZGF0ZWRIZWlnaHQpO1xuICAgICAgICBjb25zdCBkYXRhVXJsOiBzdHJpbmcgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XG4gICAgICAgIC8vIGNvbnN0IHJlc2l6ZWRJbWFnZSA9IGRhdGFVUkxUb0Jsb2IoZGF0YVVybCk7XG5cbiAgICAgICAgcmVzb2x2ZShkYXRhVXJsKTtcbiAgICAgICAgLy8gJC5ldmVudC50cmlnZ2VyKHtcbiAgICAgICAgLy8gICB0eXBlOiAnaW1hZ2VSZXNpemVkJyxcbiAgICAgICAgLy8gICBibG9iOiByZXNpemVkSW1hZ2UsXG4gICAgICAgIC8vICAgdXJsOiBkYXRhVXJsXG4gICAgICAgIC8vIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3JpZ2luYWxCYXNlNjQ6IHN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgaW1hZ2Uuc3JjID0gb3JpZ2luYWxCYXNlNjQ7XG4gICAgfTtcbiAgICAvLyByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgIC8vICAgY29uc3QgYmFzZTY0OiBzdHJpbmcgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAvLyAgIHJlc29sdmUoYmFzZTY0KTtcbiAgICAvLyB9O1xuICAgIHJlYWRlci5vbmVycm9yID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB7XG4gICAgICByZWplY3QoZXZlbnQpO1xuICAgIH07XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gIH0pO1xuIl0sIm5hbWVzIjpbImNvbnZlcnRGaWxlVG9CYXNlNjQiLCJmaWxlIiwibWF4U2l6ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImltYWdlIiwiSW1hZ2UiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJoZWlnaHQiLCJ3aWR0aCIsInVwZGF0ZWRIZWlnaHQiLCJ1cGRhdGVkV2lkdGgiLCJnZXRDb250ZXh0IiwiZHJhd0ltYWdlIiwiZGF0YVVybCIsInRvRGF0YVVSTCIsIm9yaWdpbmFsQmFzZTY0IiwicmVzdWx0Iiwic3JjIiwib25lcnJvciIsImV2ZW50IiwicmVhZEFzRGF0YVVSTCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQSxzQkFBc0IsQ0FBQ0MsTUFBWUMsVUFDOUMsSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztRQUNwQixNQUFNQyxTQUFTLElBQUlDO1FBQ25CRCxPQUFPRSxNQUFNLEdBQUc7WUFDZCxNQUFNQyxRQUFRLElBQUlDO1lBQ2xCRCxNQUFNRCxNQUFNLEdBQUc7Z0JBQ2IsbUJBQW1CO2dCQUNuQixNQUFNRyxTQUE0QkMsU0FBU0MsYUFBYSxDQUFDO2dCQUN6RCxNQUFNLEVBQUNDLE1BQU0sRUFBRUMsS0FBSyxFQUFDLEdBQUdOO2dCQUN4QixJQUFJTyxnQkFBd0JGO2dCQUM1QixJQUFJRyxlQUF1QkY7Z0JBRTNCLElBQUdBLFFBQVFELFFBQVE7b0JBQ2pCLElBQUdDLFFBQVFiLFNBQVM7d0JBQ2xCYyxpQkFBaUJkLFVBQVVhO3dCQUMzQkUsZUFBZWY7b0JBQ2pCO2dCQUNGLE9BQU8sSUFBR1ksU0FBU1osU0FBUztvQkFDMUJlLGdCQUFnQmYsVUFBVVk7b0JBQzFCRSxnQkFBZ0JkO2dCQUNsQjtnQkFFQVMsT0FBT0ksS0FBSyxHQUFHRTtnQkFDZk4sT0FBT0csTUFBTSxHQUFHRTtnQkFDaEJMLE9BQU9PLFVBQVUsQ0FBQyxPQUFPQyxVQUFVVixPQUFPLEdBQUcsR0FBR1EsY0FBY0Q7Z0JBQzlELE1BQU1JLFVBQWtCVCxPQUFPVSxTQUFTLENBQUM7Z0JBQ3pDLCtDQUErQztnQkFFL0NqQixRQUFRZ0I7WUFDUixvQkFBb0I7WUFDcEIsMEJBQTBCO1lBQzFCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsTUFBTTtZQUNSO1lBRUEsTUFBTUUsaUJBQXlCaEIsT0FBT2lCLE1BQU07WUFDNUNkLE1BQU1lLEdBQUcsR0FBR0Y7UUFDZDtRQUNBLDZCQUE2QjtRQUM3QixvREFBb0Q7UUFDcEQscUJBQXFCO1FBQ3JCLEtBQUs7UUFDTGhCLE9BQU9tQixPQUFPLEdBQUcsQ0FBQ0M7WUFDaEJyQixPQUFPcUI7UUFDVDtRQUNBcEIsT0FBT3FCLGFBQWEsQ0FBQzFCO0lBQ3ZCLEdBQUcifQ==