-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcolor.js
49 lines (44 loc) · 1.23 KB
/
color.js
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
var fs = require('fs');
var gm = require('gm');
var _ = require('lodash');
var getColors = require("get-image-colors")
var newMeta = [];
function getColorsForImage(m, meta) {
if (_.isEmpty(meta)) {
// if there's no morew photos, save it!
fs.writeFile('colors.json', JSON.stringify(newMeta), 'utf8');
return;
}
getColors('processed/' + m.id, function(err, colors){
// colors is an array of colors
colors = _.map(colors, function(color) {
return color.hex();
});
m.colors = colors;
newMeta.push(m);
console.log(m);
m = meta.pop();
getColorsForImage(m, meta);
});
}
fs.readFile('metadata.json', 'utf8', function(err, metadata) {
metadata = JSON.parse(metadata);
var meta = _.chain(metadata)
.map(function(photos, tripId) {
return _.map(photos, function(photo) {
var date = photo[2] && photo[2].split(' ');
var time = date && date[1];
date = date && date[0].replace(/:/g, '/');
date = date && date + ' ' + time;
return {
id: photo[0],
filename: photo[1],
tripId: tripId,
date: date,
geo: photo[3],
}
});
}).flatten().value();
var m = meta.pop();
getColorsForImage(m, meta);
});