aboutsummaryrefslogtreecommitdiff
path: root/gen.js
blob: 512eb35afd7207e8d5e9516e2f18348340ed33a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
var page = require('webpage').create();
var w = 32;
var h = 32;
var con = console;

//viewportSize being the actual size of the headless browser
page.viewportSize = { width: w, height: h };

//the clipRect is the portion of the page you are taking a screenshot of
page.clipRect = { top: 0, left: 0, width: w, height: h };

page.content = '<html><body><div id="character"></div></body></html>';

var chars = [
  // numbers
  "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
  // latin
  "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
  "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
  // special chars
  "!", "#", "$", "%", "&", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";",
  "<", "=", ">", "?", "@", '"', "'",
  // cyrillic
  "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н",
  "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь",
  "Э", "Ю", "Я"
];

function encode_utf8(s) {
  return unescape(encodeURIComponent(s));
}

function decode_utf8(s) {
  return decodeURIComponent(escape(s));
}

function pad(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}

page.evaluate(function () {
  var chEl = document.getElementById('character');

  document.body.style.backgroundColor = 'white';
  document.body.style.margin = '0px';
  chEl.style.fontSize = '24px';
  chEl.style.fontWeight = 'bold';
  chEl.style.marginTop = '2px';
  chEl.style.textAlign = 'center';
});

page.render('textures/ehlphabet_000.png');

chars.forEach(function (ch) {
  var file;
  page.evaluate(function (ch) {
    var chEl = document.getElementById('character');
    chEl.innerText = ch;
  }, ch);

  ch = encode_utf8(ch);
  if (ch.length > 1) {
    file = pad(ch.charCodeAt(0), 3) + '_' + pad(ch.charCodeAt(1), 3);
  } else  {
    file = pad(ch.charCodeAt(0), 3);
  }

  page.render('textures/ehlphabet_' + file + '.png');
});

console.log('done');

phantom.exit();