@yangzw/bruce-img
Version:
An image processing tool that multifunctional and unrestricted
1 lines • 1.9 kB
JavaScript
var x=this&&this.__awaiter||function(t,o,n,e){return new(n||(n=Promise))((function(r,i){function s(t){try{l(e.next(t))}catch(t){i(t)}}function a(t){try{l(e.throw(t))}catch(t){i(t)}}function l(t){var o;t.done?r(t.value):(o=t.value,o instanceof n?o:new n((function(t){t(o)}))).then(s,a)}l((e=e.apply(t,o||[])).next())}))};import{readFileSync as tt}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,WaitFor as Ze}from"@yangzw/bruce-us/dist/node.js";import ko from"is-animated";import no from"ora";import Gt from"sharp";import St from"text-to-svg";import{MarkAnswer as ar}from"../helpers/index.js";import{MARK_TEXT as kt}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";function Bt(){return x(this,arguments,void 0,(function*(t="",o){const n=tt(E(t)),e=ui(t);if(ko(n)&&"webp"===e)return kt.result2(t,"webp动态图像无法标记");try{const{blend:n,color:e,label:r,left:i="",position:s,size:a,top:l=""}=o,c=ei(ai.mark,t.replace(_(t),"")),f=E(ei(ai.mark,ci(t))),m=Object.assign({blend:n,input:Et(r,+a,e)},"none"===s?{left:+i,top:+l}:{gravity:s});return ns(c),yield Gt(t).composite([m]).toFile(f),kt.result1(t,r)}catch(o){return kt.result2(t,o.message)}}))}function Et(t="",o=12,n=""){const e=St.loadSync().getSVG(t,{anchor:"top",attributes:{fill:n},fontSize:o>=12?o:12});return Buffer.from(e)}export default function Co(){return x(this,void 0,void 0,(function*(){io("mark");const t=yield ar(),o=no(kt.doing).start();eo(ai.mark),ns(ai.mark);const{count:n,validImgs:e}=yield pi("jpg,png,webp,JPG,PNG,WEBP"),r=e.map((o=>x(this,void 0,void 0,(function*(){return yield Bt(o,t)})))),i=yield Promise.all(r);yield Ze(2e3),o.stop(),console.log(kt.stats(n)),i.length<=100&&i.forEach((t=>console.log(t))),console.log(kt.done),s(1)}))}