png-upload-optimizer
Version:
Simple PNG Image Upload optimizer for frontend that scales your image as per your usability
1 lines • 2.08 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.pngOptimizer=t():e.pngOptimizer=t()}(this,(()=>(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{dataURLtoImage:()=>i,dataURLtoUint8Array:()=>a,default:()=>o,filetoDataURL:()=>r,imagetoCanvas:()=>c});var n=function(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{d(o.next(e))}catch(e){i(e)}}function c(e){try{d(o.throw(e))}catch(e){i(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}d((o=o.apply(e,t||[])).next())}))};function o(e,t={scale:1}){return n(this,void 0,void 0,(function*(){if("object"!=typeof t&&(t=Object.assign({scale:t})),t.scale=Number(t.scale),Number.isNaN(t.scale))return e;const n=yield r(e),o=yield i(n),d=(yield c(o,Object.assign({},t))).toDataURL(),u=yield a(d);return new File([u],e.name,{type:"image/png"})}))}function r(e){return new Promise((t=>{const n=new FileReader;n.onloadend=e=>{var n;return t(null===(n=null==e?void 0:e.target)||void 0===n?void 0:n.result)},n.readAsDataURL(e)}))}function i(e){return new Promise(((t,n)=>{const o=new Image;o.onload=()=>t(o),o.onerror=()=>n(new Error("dataURLtoImage(): dataURL is illegal")),o.src=e}))}function a(e){return n(this,void 0,void 0,(function*(){const t=e.split(","),n=window.atob(t[1]);let o=n.length;const r=new Uint8Array(o);for(;o--;)r[o]=n.charCodeAt(o);return r}))}function c(e,t={scale:0}){return n(this,void 0,void 0,(function*(){const n=Object.assign({},t),o=document.createElement("canvas");o.height=e.height*n.scale,o.width=e.width*n.scale;const r=o.getContext("2d");return r&&r.drawImage(e,0,0,o.width,o.height),o}))}return t})()));