2015-08-24 7 views
1

У меня есть матрица значений, представляющая 8-битное изображение в оттенках серого (значения от 0 до 255). Я хотел бы показать это изображение в Интернете. Как я могу это сделать? Изображение происходит из программы C, для этого требуется преобразовать изображение в программу на C?Как преобразовать матрицу изображений в оттенках серого в изображение в Node.js

+0

проверить изображение кодеками [здесь] (https://github.com/foo123/FILTER.js) и выбрать один, чтобы сохранить данные в виде реального изображения на диске, HTTPS://github.com/foo123/FILTER.js/tree/master/src/codecs –

+0

Обратите внимание, что не все кодеки поддерживают кодирование (сохранение данных как изображение), некоторые поддерживают только кодировку (чтение данных с изображения) –

+0

Im чтение о кодеках здесь https : //github.com/foo123/FILTER.js/blob/master/api-reference.md#codecs Где передать матрицу? Вы рекомендуете конкретный формат –

ответ

0

Я закончил с помощью библиотеки pngjs, чтобы сделать работу благодаря предложению stdob https://www.npmjs.com/package/pngjs. Heres код, который я использовал:

var fs = require('fs'), 
    PNG = require('pngjs').PNG; 

var png = new PNG({ 
    width: 100, 
    height: 100, 
    filterType: -1 
}); 

for (var y = 0; y < png.height; y++) { 
    for (var x = 0; x < png.width; x++) { 
     var idx = (png.width * y + x) << 2; 
     png.data[idx ] = 255; 
     png.data[idx+1] = 218; 
     png.data[idx+2] = 185; 
     png.data[idx+3] = 255; 
    } 
} 

png.pack().pipe(fs.createWriteStream('newOut.png'));