@awesome-compressor/browser-compress-image
Version:
🚀 A powerful, lightweight browser image compression library with TypeScript support. Compress JPEG, PNG, GIF images with multiple output formats (Blob, File, Base64, ArrayBuffer) and zero dependencies.
11 lines • 830 B
JavaScript
import{__esmMin as e,__export as t}from"./chunk-BFNP_Rck.js";import n from"gifsicle-wasm-browser";var r={};t(r,{default:()=>i});async function i(e,t){let{quality:r,mode:i,targetWidth:a,targetHeight:o,maxWidth:s,maxHeight:c}=t;if(!e.type.includes(`gif`))throw Error(`Gifsicle is only for GIF files`);let l;if(i===`keepSize`)l=`
-O1
--lossy=${Math.round((1-r)*100)}
${e.name}
-o /out/${e.name}
`;else{let t=``;if(a&&o)t=`--resize ${a}x${o}`;else if(s||c){let e=Math.min(s||9999,c||9999);t=`--resize-fit ${e}x${e}`}l=`
-O1
${t}
${e.name}
-o /out/${e.name}
`}let u=await n.run({input:[{file:e,name:e.name}],command:[l]}),d=u[0];return d.size>=e.size*.98?e:d}var a=e(()=>{});export{i as compressWithGifsicle,r as compressWithGifsicle_exports,a as init_compressWithGifsicle};