Created
July 23, 2018 15:52
-
-
Save austintgriffith/e79373979f8d47b23656464942668177 to your computer and use it in GitHub Desktop.
Takes a collection of pngs layers and joins them for https://github.com/austintgriffith/nifties-vs-nfties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Takes a collection of pngs layers and joins them for | |
https://github.com/austintgriffith/nifties-vs-nfties | |
brew install imagemagick | |
brew install graphicsmagick | |
npm install --save gm | |
node index.js | |
*/ | |
let fs = require('fs') | |
, gm = require('gm'); | |
let dir = './output'; | |
if (!fs.existsSync(dir)){ | |
fs.mkdirSync(dir); | |
} | |
let shadow4 = "./nifties/shadow-4.png" | |
let shadow3 = "./nifties/shadow-3.png" | |
let shadow2 = "./nifties/shadow-2.png" | |
let shadow1 = "./nifties/shadow-1.png" | |
let count = 0 | |
for(bodyNumber=1;bodyNumber<=5;bodyNumber++){ | |
for(feetNumber=1;feetNumber<=7;feetNumber++){ | |
for(headNumber=1;headNumber<=7;headNumber++){ | |
for(mouthNumber=1;mouthNumber<=8;mouthNumber++){ | |
let body = "./nifties/nifties-body-"+bodyNumber+".png" | |
let feet = "./nifties/nifties-feet-"+feetNumber+".png" | |
let head = "./nifties/nifties-head-"+headNumber+".png" | |
let mouth = "./nifties/nifties-mouth-"+mouthNumber+".png" | |
count++ | |
let filename = "./output/nifties-"+bodyNumber+"-"+feetNumber+"-"+headNumber+"-"+mouthNumber+".png" | |
if (!fs.existsSync(filename)){ | |
gm() | |
.in("xc:transparent") | |
.compose("Over") | |
.in('-geometry', '+0+0') | |
.in(shadow4) | |
.in('-geometry', '+0+0') | |
.in(shadow3) | |
.in('-geometry', '+0+0') | |
.in(shadow2) | |
.in('-geometry', '+0+0') | |
.in(shadow1) | |
.in('-geometry', '+0+0') | |
.in(body) | |
.in('-geometry', '+0+0') | |
.in(feet) | |
.in('-geometry', '+0+0') | |
.in(head) | |
.in('-geometry', '+0+0') | |
.in(mouth) | |
.mosaic() | |
.write(filename, function (err) { | |
if (err) console.log(err); | |
}); | |
} | |
} | |
} | |
} | |
} | |
console.log(""+count+" nifties generated") | |
shadow4 = "./nfties/shadow-4.png" | |
shadow3 = "./nfties/shadow-3.png" | |
shadow2 = "./nfties/shadow-2.png" | |
shadow1 = "./nfties/shadow-1.png" | |
count = 0 | |
for(bodyNumber=1;bodyNumber<=5;bodyNumber++){ | |
for(feetNumber=1;feetNumber<=5;feetNumber++){ | |
for(headNumber=1;headNumber<=5;headNumber++){ | |
for(mouthNumber=1;mouthNumber<=5;mouthNumber++){ | |
for(extraNumber=1;extraNumber<=5;extraNumber++){ | |
let body = "./nfties/nfties-body-"+bodyNumber+".png" | |
let feet = "./nfties/nfties-feet-"+feetNumber+".png" | |
let head = "./nfties/nfties-head-"+headNumber+".png" | |
let mouth = "./nfties/nfties-mouth-"+mouthNumber+".png" | |
let extra = "./nfties/nfties-extra-"+extraNumber+".png" | |
count++ | |
let filename = "./output/nfties-"+bodyNumber+"-"+feetNumber+"-"+headNumber+"-"+mouthNumber+"-"+extraNumber+".png" | |
if (!fs.existsSync(filename)){ | |
gm() | |
.in("xc:transparent") | |
.compose("Over") | |
.in('-geometry', '+0+0') | |
.in(shadow4) | |
.in('-geometry', '+0+0') | |
.in(shadow3) | |
.in('-geometry', '+0+0') | |
.in(shadow2) | |
.in('-geometry', '+0+0') | |
.in(shadow1) | |
.in('-geometry', '+0+0') | |
.in(body) | |
.in('-geometry', '+0+0') | |
.in(feet) | |
.in('-geometry', '+0+0') | |
.in(head) | |
.in('-geometry', '+0+0') | |
.in(mouth) | |
.in('-geometry', '+0+0') | |
.in(extra) | |
.in('-geometry', '+0+0') | |
.mosaic() | |
.write(filename, function (err) { | |
if (err) console.log(err); | |
}); | |
} | |
} | |
} | |
} | |
} | |
} | |
console.log(""+count+" nfties generated") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment