UNPKG

randpix

Version:

Fastest pixel avatar generator

2 lines (1 loc) 4.56 kB
var O=Object.create;var h=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var a in r)h(e,a,{get:r[a],enumerable:!0})},u=(e,r,a,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of p(r))!N.call(e,t)&&t!==a&&h(e,t,{get:()=>r[t],enumerable:!(o=I(r,t))||o.enumerable});return e};var x=(e,r,a)=>(a=e!=null?O(T(e)):{},u(r||!e||!e.__esModule?h(a,"default",{value:e,enumerable:!0}):a,e)),g=e=>u(h({},"__esModule",{value:!0}),e);var D={};d(D,{RandpixColorScheme:()=>A,Symmetry:()=>R,randpix:()=>B});module.exports=g(D);var L=require("canvas");var A={NEUTRAL:[[255,107,107,1],[255,217,61,1],[107,203,119,1],[77,150,255,1]],MAGENTA:[[251,214,210,1],[241,144,183,.5],[206,73,191,.2],[166,62,197,.1]],MAGENTA_SEPIA:[[70,36,76,1],[113,43,117,.5],[199,75,80,.2],[212,155,84,.1]],LIGHT_GREEN:[[151,219,174,1],[195,229,174,.5],[241,225,166,.2],[244,187,187,.1]],SEPIA:[[244,252,217,1],[197,216,164,.5],[187,153,129,.2],[83,67,64,.2]],MAGMA:[[99,6,6,1],[137,15,13,1],[232,58,20,.5],[217,206,63,.2]],ICE:[[239,255,253,1],[184,255,249,.7],[133,244,255,.4],[66,194,255,.1]],DARK_SEPIA:[[28,10,0,1],[54,21,0,.8],[96,54,1,.5],[204,149,68,.3]],SOLARIZE:[[255,211,45,1],[0,142,137,1],[8,94,125,1],[8,69,148,1]],DARKULA:[[4,28,50,1],[4,41,58,1],[6,70,99,1],[236,179,101,.2]],BLUE:[[5,19,103,1],[45,49,250,.5],[93,139,244,.2],[223,246,255,.1]],RETROWAVE:[[26,26,64,1],[39,0,130,1],[122,11,192,.5],[250,88,182,.2]],BLOOD:[[61,0,0,1],[149,1,1,1],[255,0,0,.5]],PURPUR:[[66,5,22,1],[125,25,53,1],[180,43,81,.5],[230,62,109,.5]],GRAYSCALE_MAGENTA:[[243,241,245,1],[240,217,255,1],[191,162,219,1],[127,124,130,.2]],NIGHT_SKY:[[38,28,44,1],[62,44,65,1],[92,82,127,.7],[110,133,178,.5]],SUNSET:[[250,173,128,1],[255,103,103,.6],[255,61,104,.3],[167,52,137,.2]],TOXIC_LIME:[[31,171,137,1],[98,210,162,1],[157,243,196,1],[215,251,232,1]],SKY:[[124,131,253,1],[150,186,255,1],[125,237,255,.3],[136,255,247,.3]],BROWNSCALE:[[54,34,34,1],[23,16,16,1],[66,63,62,.6],[43,43,43,.6]],LIGHT_SEPIA:[[254,247,220,1],[230,221,198,1],[194,184,163,.8],[161,152,130,.5]],SUN:[[247,253,4,.2],[249,178,8,1],[249,132,4,.6],[252,84,4,.4]],PURPLE_SOLARIZED:[[243,145,137,1],[187,128,130,1],[110,117,130,.4],[4,101,130,.2]],CYBERPUNK:[[0,189,170,1],[64,0,130,1],[254,52,110,1],[241,231,182,1]],DIAMOND_BLACK:[[33,33,33,1],[50,50,50,1],[13,115,119,.2],[20,255,236,.2]],CYBER_BLACK:[[8,217,214,.2],[37,42,52,1],[255,46,99,.2],[234,234,234,.2]],DIAMOND:[[222,252,249,1],[202,222,252,.5],[195,190,240,.3],[204,168,233,.2]],BLOOD_MOON:[[43,46,74,1],[232,69,69,.1],[144,55,73,.3],[83,53,74,.5]],GERMANY:[[20,63,107,1],[245,83,83,1],[254,177,57,1],[246,245,77,.5]],GOLD_ORE:[[52,52,52,1],[230,179,30,.4],[252,250,241,.3],[202,202,202,.5]],LAVA_POOL:[[8,32,50,1],[44,57,75,1],[51,71,86,1],[255,76,41,.5]],CREAM:[[255,222,222,.6],[253,245,202,1],[255,223,175,1],[242,187,123,1]]};var R=(o=>(o.VERTICAL="VERTICAL",o.HORIZONTAL="HORIZONTAL",o.QUAD="QUAD",o))(R||{});var b=x(require("seedrandom"));var E=e=>Math.floor(Math.random()*e-e/2),P=e=>{let r=e.map(o=>o[3]??0);for(let o=0;o<e.length;o++)r[o]+=r[o-1]??0;let a=Math.random()*r[r.length-1];for(let o=0;o<r.length;o++)if(r[o]>a)return e[o];return e[Math.random()*e.length>>0]},M=(e,r,a,o,t,s=0,n)=>{let c=[];for(let l=0;l<r;l++){c[l]=[];for(let m=0;m<e;m++)if(Math.random()<o){if(c[l][m]=t??P(a),s>0)if(n){let C=E(s);c[l][m]=c[l][m].map((S,f)=>f<3?S+C:S)}else c[l][m]=c[l][m].map((C,S)=>S<3?C+E(s):C)}else c[l][m]=[-1,-1,-1]}return c},i=(e,r,a)=>{switch(e){case"HORIZONTAL":return a?[...r,...r.reverse().slice(1)]:[...r,...r.reverse()];case"VERTICAL":return a?r.map(o=>[...o.slice(1).reverse(),...o]):r.map(o=>[...o.slice().reverse(),...o]);case"QUAD":return i("HORIZONTAL",i("VERTICAL",r,a),a)}},U=(e,r,a,o=A.NEUTRAL,t=.5,s,n,c)=>{let l=[e,r];switch(a){case"HORIZONTAL":l=[l[0],l[1]/2];break;case"VERTICAL":l=[l[0]/2,l[1]];break;case"QUAD":l=[l[0]/2,l[1]/2];break}return i(a,M(l[0],l[1],o,t,s,n,c),!!l.find(m=>!Number.isInteger(m)))},B=e=>{e?.seed&&String(e.seed).length>0&&(0,b.default)(String(e.seed),{global:!0});let r=e?.size??8,a=e?.scale??1,o=r*a,t=(0,L.createCanvas)(o,o),s=t.getContext("2d",{alpha:!0});return()=>{let n=U(r,r,e?.symmetry??"VERTICAL",e?.colorScheme??A.NEUTRAL,e?.fillFactor??.5,e?.color,e?.colorBias,e?.grayscaleBias);s.clearRect(0,0,o,o);for(let c=0;c<n.length;c++)for(let l=0;l<n[c].length;l++){let m=n[c][l];m.includes(-1)||(s.fillStyle=`rgb(${m[0]}, ${m[1]}, ${m[2]})`,s.fillRect(l*a,c*a,a,a))}return t}};