Skip to content

Instantly share code, notes, and snippets.

@Jamie452
Created March 16, 2017 00:06
Show Gist options
  • Save Jamie452/9f25475ccc9b9c72105e867ab64f2243 to your computer and use it in GitHub Desktop.
Save Jamie452/9f25475ccc9b9c72105e867ab64f2243 to your computer and use it in GitHub Desktop.
Code (broken) to apply a LUT on the server side
let fs = require('fs');
let getPixels = require('get-pixels');
let ndArrayOps = require('ndarray-ops');
let parseCubeLUT = require('parse-cube-lut');
let applyCubeLUT = require('apply-cube-lut');
let savePixels = require('save-pixels');
fs.readFile('./luts/heulandite.cube', 'utf8', (err, rawLutData) => {
if (err) {
console.error(err);
return;
}
let lut = parseCubeLUT(rawLutData);
console.log('Parsed LUT data...');
getPixels('./images/input-small.jpg', (err, ndArray) => {
if (err) {
console.error(err);
return;
}
console.log('Got image ndarray...');
ndArrayOps.mulseq(ndArray, 1.0 / 255.0);
applyCubeLUT(ndArray, ndArray, lut);
ndArrayOps.mulseq(ndArray, 255.0);
console.log('Applied LUT...');
let writer = fs.createWriteStream('./output/lut-applied.jpg');
writer.on('error', (err) => {
console.error('Error writing to file:', err);
});
writer.on('finish', () => {
console.log('All writes are now complete.');
});
savePixels(ndArray, 'jpg', { quality: 100 }).pipe(writer);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment