summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorYuval Adam <yuval@y3xz.com>2015-07-07 20:24:05 +0300
committerYuval Adam <yuval@y3xz.com>2015-07-07 20:28:43 +0300
commitbf492438eb0b0fbbf29e3812ca8c4a3d792b8581 (patch)
treedef55e0aa91076d38a30d656b18d00154127c810 /client
parentc079c5914a1980d656ef96eca5fa775aebaab648 (diff)
Fucking hex conversions
Diffstat (limited to 'client')
-rw-r--r--client/button.js41
-rw-r--r--client/effects.js8
2 files changed, 45 insertions, 4 deletions
diff --git a/client/button.js b/client/button.js
index bc1f870..d5cd8e1 100644
--- a/client/button.js
+++ b/client/button.js
@@ -63,6 +63,9 @@ function animate() {
$('ol#dominant2 li.g').text('G-' + palette[1][1].toString(16).toUpperCase());
$('ol#dominant2 li.b').text('B-' + palette[1][2].toString(16).toUpperCase());
+ Session.set('dominant1hex', palette[0][0].toString(16).toUpperCase() + palette[0][1].toString(16).toUpperCase() + palette[0][2].toString(16).toUpperCase());
+ Session.set('dominant2hex', palette[1][0].toString(16).toUpperCase() + palette[1][1].toString(16).toUpperCase() + palette[1][2].toString(16).toUpperCase());
+
$('div.dominants').show();
}, delay + 2000);
}
@@ -99,7 +102,8 @@ function animate2() {
delay += 2000;
_.delay(function() {
- Effects.drawFinalIcon();
+ var matrix = Effects.drawFinalIcon();
+ Session.set('final_matrix', matrix);
}, delay + 2000);
delay += 400 * photos.length;
@@ -221,7 +225,40 @@ Template.photos.events({
},
'click button.share-print': function (event) {
var date = Session.get('date');
- Meteor.call('printFinalImage', date.month, date.year, [[1,2,3], [4,5,6]]);
+ var printStr = date.month < 10 ? '0' + date.month : date.month;
+ printStr += date.year;
+
+ var dominant1 = Session.get('dominant1hex');
+ var dominant2 = Session.get('dominant2hex');
+
+ printStr += dominant1;
+ printStr += dominant2;
+
+ var bin2hex = function(b) {
+ _.map(
+ _.groupBy(b, function(e, i){
+ return Math.floor(i/4);
+ }), function (g) {
+ return parseInt(g.join(''), 2).toString(16);
+ }
+ ).join('');
+ }
+
+ var matrix = Session.get('final_matrix');
+ var code = "111" + _.map(matrix, function (col) { // add three high bits for padding
+ var hex = _.map(col, function (c) {
+ return Math.round(c*256).toString(16).toUpperCase();
+ }).join('');
+ if (hex == dominant1) { return '0'; }
+ if (hex == dominant2) { return '1'; }
+ else {
+ console.log('error', hex, dominant1, dominant2);
+ }
+ });
+
+ printStr += code;
+
+ Meteor.call('printFinalImage', date.month, date.year, bin2hex(code));
}
})
diff --git a/client/effects.js b/client/effects.js
index f5898fe..836ea1e 100644
--- a/client/effects.js
+++ b/client/effects.js
@@ -285,14 +285,16 @@ Effects = (function() {
// transpose to get pixel color groups
cols = _.zip.apply(_, cols);
+ final_cols = _.map(cols, function(col) {
+ return _.chain(col).countBy().pairs().max(_.last).head().value().split(',');
+ })
for (var y = 0; y < gridDim; y++) {
for (var x = 0; x < gridDim; x++) {
_.delay(function(x, y) {
// get most recurring item/color
- var col = cols[(y * gridDim) + x];
- var c = _.chain(col).countBy().pairs().max(_.last).head().value().split(',');
+ var c = final_cols[(y * gridDim) + x];
var nc = new paper.Color(+c[0], +c[1], +c[2]);
var rec = new paper.Path.Rectangle({
@@ -306,6 +308,8 @@ Effects = (function() {
}, ((y * gridDim) + x) * 35, x, y);
}
}
+
+ return final_cols;
}
return {