Compare commits
37 Commits
main
...
pirate-gif
Author | SHA1 | Date |
---|---|---|
Kiara Grouwstra | 8abb73e368 | |
Kiara Grouwstra | 97bf8bc421 | |
Kiara Grouwstra | 8f03a2b4af | |
Kiara Grouwstra | d9e855b4ea | |
Kiara Grouwstra | 210ef2845b | |
Kiara Grouwstra | 9783024c87 | |
Kiara Grouwstra | 3efe3e1fde | |
Kiara Grouwstra | f9560ff24e | |
Kiara Grouwstra | a480b12c2b | |
Kiara Grouwstra | 0fb1ef2d02 | |
Kiara Grouwstra | e89c5a59af | |
Kiara Grouwstra | 893088b2bd | |
Kiara Grouwstra | 1ecb223066 | |
Kiara Grouwstra | 99736f9ab5 | |
Kiara Grouwstra | 05ef2cf81b | |
Kiara Grouwstra | 99ba1f8120 | |
Kiara Grouwstra | aa7b440dd3 | |
Kiara Grouwstra | 07dd1bfccb | |
Kiara Grouwstra | fb62d49cf9 | |
Kiara Grouwstra | cd27d9f7aa | |
Kiara Grouwstra | 4d4507ee4f | |
Kiara Grouwstra | 535c416398 | |
Kiara Grouwstra | e691534794 | |
Kiara Grouwstra | cd7ea4e138 | |
Kiara Grouwstra | c92ea52e29 | |
Kiara Grouwstra | 61fe3ab779 | |
Kiara Grouwstra | 2cfdb30e40 | |
Kiara Grouwstra | 25882d71ec | |
Kiara Grouwstra | bb4612a0d1 | |
Kiara Grouwstra | ce920451e8 | |
Kiara Grouwstra | 025adacfb8 | |
Kiara Grouwstra | b165303b9c | |
Kiara Grouwstra | fb61a86054 | |
Kiara Grouwstra | 6edc035a08 | |
Kiara Grouwstra | 0508fba99b | |
Kiara Grouwstra | 770a441f01 | |
Kiara Grouwstra | 3ebb128f79 |
|
@ -1,2 +1,3 @@
|
|||
node_modules/
|
||||
package-lock.json
|
||||
gif/
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 165 KiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 358 KiB |
File diff suppressed because one or more lines are too long
|
@ -4,5 +4,6 @@ generating png:
|
|||
```bash
|
||||
$ npm install pug-cli
|
||||
$ ./node_modules/.bin/pug -P < Nederland_kieskringen.svg.pug > Nederland_kieskringen.svg
|
||||
$ magick convert Nederland_kieskringen.svg Nederland_kieskringen.png
|
||||
$ magick convert -crop 550x630+0+0 Nederland_kieskringen.svg Nederland_kieskringen.png
|
||||
$ node gif.js
|
||||
```
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env node
|
||||
const pug = require('pug');
|
||||
const fs = require('fs');
|
||||
const exec = require('child_process').exec;
|
||||
const path = require('path');
|
||||
const mkdirp = require('mkdirp');
|
||||
const resolve = path.resolve;
|
||||
mkdirp(resolve('./gif'), {});
|
||||
|
||||
const data = {
|
||||
// "19-01": d875ba1490a2bcfd865018a0376472a38508ef7b,
|
||||
"20-01": { 1: 30, 2: 21, 3: 17, 4: 6, 5: 19, 6: 6, 7: 17, 8: 7, 9: 40, 10: 9, 11: 18, 12: 31, 13: 9, 14: 4, 15: 14, 16: 3, 17: 3, 18: 6, 19: 11, 20: 0 },
|
||||
"22-01": { 1: 30, 2: 21, 3: 17, 4: 18, 5: 19, 6: 6, 7: 17, 8: 11, 9: 40, 10: 17, 11: 20, 12: 31, 13: 9, 14: 4, 15: 14, 16: 11, 17: 5, 18: 12, 19: 11, 20: 2 },
|
||||
"24-01": { 1: 32, 2: 23, 3: 17, 4: 22, 5: 19, 6: 10, 7: 14, 8: 15, 9: 40, 10: 19, 11: 26, 12: 31, 13: 13, 14: 10, 15: 21, 16: 11, 17: 6, 18: 17, 19: 8, 20: 2 },
|
||||
"25-01": { 1: 32, 2: 31, 3: 17, 4: 26, 5: 25, 6: 10, 7: 18, 8: 40, 9: 40, 10: 27, 11: 32, 12: 31, 13: 30, 14: 12, 15: 33, 16: 12, 17: 8, 18: 21, 19: 12, 20: 2 },
|
||||
"26-01": { 1: 32, 2: 31, 3: 19, 4: 31, 5: 32, 6: 10, 7: 18, 8: 40, 9: 40, 10: 33, 11: 35, 12: 31, 13: 31, 14: 15, 15: 33, 16: 17, 17: 12, 18: 23, 19: 13, 20: 2 },
|
||||
// "28-01 08:00": { 1: 32, 2: 32, 3: 20, 4: 32, 5: 34, 6: 12, 7: 24, 8: 40, 9: 40, 10: 35, 11: 32, 12: 31, 13: 31, 14: 18, 15: 35, 16: 17, 17: 12, 18: 25, 19: 13, 20: 2 },
|
||||
"28-01": { 1: 32, 2: 32, 3: 20, 4: 32, 5: 34, 6: 34, 7: 29, 8: 40, 9: 40, 10: 35, 11: 40, 12: 31, 13: 31, 14: 20, 15: 35, 16: 17, 17: 13, 18: 25, 19: 17, 20: 2 },
|
||||
// 18:00
|
||||
// "29-01 11:00": { 1: 34, 2: 34, 3: 20, 4: 34, 5: 36, 6: 36, 7: 33, 8: 40, 9: 40, 10: 36, 11: 40, 12: 34, 13: 32, 14: 22, 15: 35, 16: 24, 17: 17, 18: 31, 19: 25, 20: 2 },
|
||||
"29-01": { 1: 34, 2: 36, 3: 20, 4: 36, 5: 36, 6: 36, 7: 34, 8: 40, 9: 40, 10: 36, 11: 40, 12: 34, 13: 32, 14: 31, 15: 35, 16: 26, 17: 32, 18: 31, 19: 30, 20: 2 },
|
||||
// 16:30
|
||||
// "30-01 03:00": { 1: 34, 2: 36, 3: 24, 4: 36, 5: 36, 6: 36, 7: 34, 8: 40, 9: 40, 10: 36, 11: 40, 12: 34, 13: 32, 14: 31, 15: 35, 16: 26, 17: 32, 18: 31, 19: 30, 20: 6 },
|
||||
"30-01": { 1: 35, 2: 37, 3: 24, 4: 38, 5: 38, 6: 40, 7: 40, 8: 40, 9: 40, 10: 40, 11: 40, 12: 36, 13: 36, 14: 39, 15: 40, 16: 31, 17: 32, 18: 31, 19: 30, 20: 6 },
|
||||
// 18:00
|
||||
"01-02": { 1: 35, 2: 37, 3: 31, 4: 38, 5: 38, 6: 40, 7: 40, 8: 40, 9: 40, 10: 40, 11: 40, 12: 36, 13: 36, 14: 40, 15: 40, 16: 31, 17: 32, 18: 38, 19: 31, 20: 6 },
|
||||
// 12:00
|
||||
"02-02": { 1: 35, 2: 37, 3: 31, 4: 38, 5: 38, 6: 40, 7: 40, 8: 40, 9: 40, 10: 40, 11: 40, 12: 36, 13: 36, 14: 40, 15: 40, 16: 31, 17: 32, 18: 38, 19: 31, 20: 10 },
|
||||
}
|
||||
|
||||
var pugFile = resolve('./Nederland_kieskringen.svg.pug');
|
||||
const logCmd = (cmd) => exec(cmd, function(err, stdout, stderr) {
|
||||
if (stdout) {
|
||||
console.log(stdout);
|
||||
}
|
||||
if (err) {
|
||||
console.error(err);
|
||||
}
|
||||
if (stderr) {
|
||||
console.error(stderr);
|
||||
}
|
||||
});
|
||||
function compileDate(kv) {
|
||||
var [date, signed] = kv;
|
||||
var svgFile = resolve(`./gif/${date}.svg`);
|
||||
var pngFile = resolve(`./gif/${date}.png`);
|
||||
global.title2 = `piratenpartij ${date} (/30)`;
|
||||
global.signed = signed;
|
||||
var options = {pretty:true, globals:['global']};
|
||||
var fn = pug.compileFile(pugFile, options);
|
||||
fs.writeFileSync(svgFile, fn(options));
|
||||
logCmd(`magick convert -crop 550x630+0+0 "${svgFile}" "${pngFile}"`);
|
||||
return `"${pngFile}"`;
|
||||
}
|
||||
var pngs = Object.entries(data).map(compileDate);
|
||||
// linger on end result
|
||||
var last = pngs[pngs.length-1];
|
||||
pngs = [...pngs, last, last];
|
||||
logCmd(`magick convert -crop 550x630+0+0 -dispose none -delay 1X2 ${pngs.join(' ')} -coalesce -loop 0 ./gif/kieskringen.gif`);
|
Loading…
Reference in New Issue