UNPKG

xtreme-ui

Version:

Collection of reusable components that can be used in web projects

2 lines (1 loc) 1.33 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=async a=>new Promise((t,r)=>{fetch(a).then(e=>(e.ok||r(e.status),e.blob())).then(e=>t(URL.createObjectURL(e)))}),u=async a=>new Promise((t,r)=>{const e=new FileReader;e.onloadend=()=>{var i;const g=(i=e==null?void 0:e.result)==null?void 0:i.toString();g?t(g):r()},e.onerror=r,e.readAsDataURL(a)}),s=a=>new Promise((t,r)=>{const e=new Image;e.addEventListener("load",()=>t(e)),e.addEventListener("error",g=>r(g)),e.src=a}),d=a=>a*Math.PI/180,l=async a=>new Promise(t=>{s(a).then(r=>{t({width:r.width,height:r.height})})}),w=async(a,t,r=0)=>{if(!a||!t)return null;const e=await s(a);return new Promise(g=>{const i=document.createElement("canvas"),o=i.getContext("2d");if(!o)return null;const n=2*(Math.max(e.width,e.height)/2*Math.sqrt(2));i.width=n,i.height=n,o.translate(n/2,n/2),o.rotate(d(r)),o.translate(-n/2,-n/2),o.drawImage(e,n/2-e.width*.5,n/2-e.height*.5);const h=o.getImageData(0,0,n,n);i.width=t.width,i.height=t.height,o.putImageData(h,Math.round(0-n/2+e.width*.5-t.x),Math.round(0-n/2+e.height*.5-t.y)),i.toBlob(c=>g({blob:c??void 0,base64:i.toDataURL("image/jpeg")}),"image/jpeg")})};exports.createImage=s;exports.getCroppedImg=w;exports.getImageSize=l;exports.getRadianAngle=d;exports.readImageFile=u;exports.readImageSrc=m;