UNPKG

@yangzw/bruce-img

Version:

An image processing tool that multifunctional and unrestricted

1 lines 2.12 kB
var x=this&&this.__awaiter||function(e,i,o,t){return new(o||(o=Promise))((function(n,r){function m(e){try{a(t.next(e))}catch(e){r(e)}}function s(e){try{a(t.throw(e))}catch(e){r(e)}}function a(e){var i;e.done?n(e.value):(i=e.value,i instanceof o?i:new o((function(e){e(i)}))).then(m,s)}a((t=t.apply(e,i||[])).next())}))};import{readFileSync as tt,writeFileSync as st}from"node:fs";import{basename as _,join as ei}from"node:path";import{exit as s}from"node:process";import{AbsPath as E,CreateDir as ns,RemoveDir as eo,RoundNum as ii,WaitFor as Ze}from"@yangzw/bruce-us/dist/node.js";import oi from"imagemin";import ti from"imagemin-gifsicle";import ni from"imagemin-jpegtran";import ri from"imagemin-pngquant";import mi from"imagemin-svgo";import si from"imagemin-webp";import ko from"is-animated";import no from"ora";import{COMPRESS_TEXT as e$}from"../langs/index.js";import{OUTPUT_DIR as ai,FilterImg as pi,FormatExt as ci,GetExt as ui,ShowTitle as io}from"../utils/index.js";const li={gif:ti({interlaced:!1,optimizationLevel:3}),jpg:ni({arithmetic:!1,progressive:!0}),png:ri({quality:[.6,.8],speed:1}),svg:mi({plugins:[{active:!1,name:"cleanupIDs"},{active:!1,name:"removeViewBox"},{active:!0,name:"removeDimensions"}]}),webp:si({alphaQuality:100,quality:80})};function fi(){return x(this,arguments,void 0,(function*(e=""){const i=tt(e),o=ui(e);if(ko(i)&&"webp"===o)return e$.result2(e,"webp动态图像无法压缩");try{const t=ei(ai.compress,e.replace(_(e),"")),n=E(ei(ai.compress,ci(e))),r=li[o],m=yield oi.buffer(i,{plugins:[r]}),s=ii({num:i.length}),a=ii({num:m.length}),p=ii({num:1-a/s,per:!0});return ns(t),st(n,m),e$.result1(e,{inputSize:s,outputSize:a,ratio:p})}catch(i){return e$.result2(e,i.message)}}))}export default function Fo(){return x(this,void 0,void 0,(function*(){io("compress");const e=no(e$.doing).start();eo(ai.compress),ns(ai.compress);const{count:i,validImgs:o}=yield pi(),t=o.map((e=>x(this,void 0,void 0,(function*(){return yield fi(e)})))),n=yield Promise.all(t);yield Ze(2e3),e.stop(),console.log(e$.stats(i)),n.length<=100&&n.forEach((e=>console.log(e))),console.log(e$.done),s(1)}))}