UNPKG

lean-qr

Version:
2 lines (1 loc) 1.08 kB
"use strict";var e=require("node:zlib");const r=Buffer.from([137,80,78,71,13,10,26,10]),f=Buffer.from([]),t=(t,{on:a=[0,0,0],off:n=[0,0,0,0],pad:s=4,padX:u=s,padY:l=s,scale:c=1}={})=>{const p=(t.size+2*u)*c,B=(t.size+2*l)*c,d=p+15>>3,i=Buffer.alloc(B*d);for(let e=0;e<B;++e)for(let r=0;r<p;++r)t.get((r/c|0)-u,(e/c|0)-l)&&(i[e*d+1+(r>>3)]|=128>>(7&r));const b=n[3]??255,g=a[3]??255,v=(b&g)<255,x=n[0]|n[1]|n[2]|(a[0]&a[1]&a[2])<255|v,m=Buffer.alloc(13);return m.writeInt32BE(p,0),m.writeInt32BE(B,4),m[8]=1,m[9]=x?3:0,Buffer.concat([r,o(1229472850,m),x?o(1347179589,[n[0],n[1],n[2],a[0],a[1],a[2]]):f,v?o(1951551059,[b,g]):f,o(1229209940,e.deflateSync(i,{level:9})),o(1229278788,[])])},o=(e,r)=>{const f=r.length,t=Buffer.alloc(12+f);return t.writeInt32BE(f,0),t.writeInt32BE(e,4),t.set(r,8),t.writeInt32BE(~t.subarray(4,8+f).reduce((e,r)=>a[255&(e^r)]^e>>>8,-1),8+f),t},a=new Uint32Array(256);for(let e=0;e<256;++e){let r=e;for(let e=0;e<8;++e)r=3988292384*(1&r)^r>>>1;a[e]=r}exports.toPngBuffer=t,exports.toPngDataURL=(e,r)=>"data:image/png;base64,"+t(e,r).toString("base64");