UNPKG

@nlabs/gothamjs

Version:
48 lines (47 loc) 6.07 kB
/** * 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==