【问题标题】:How to convert grayscale image matrix to image in Node.js如何在 Node.js 中将灰度图像矩阵转换为图像
【发布时间】:2015-09-03 22:02:31
【问题描述】:

我有一个代表 8 位灰度图像的值矩阵(值范围从 0 到 255)。我想在网络上显示这张图片。我该怎么做?图像来自 C 程序,是否需要在 C 程序中转换图像?

【问题讨论】:

  • 检查图像编解码器here并选择一个将数据保存为磁盘上的实际图像github.com/foo123/FILTER.js/tree/master/src/codecs
  • 注意并非所有编解码器都支持编码(将数据保存为图像),有些只支持编码(从图像中读取数据)
  • 我正在阅读这里的编解码器github.com/foo123/FILTER.js/blob/master/api-reference.md#codecs 我在哪里传递矩阵?你推荐一个特定的格式
  • 这些编解码器是基尔和那里找到的编解码器的改编版本(加上几个自定义编码)。使用的格式是像素矩阵数组,但它们经过微调以与 filter.js 一起使用,要么调整它们(简单),要么检查原始来源
  • 我怎么知道哪些支持解码?

标签: javascript node.js image grayscale


【解决方案1】:

感谢 stdob 的建议 https://www.npmjs.com/package/pngjs,我最终使用 pngjs 库来完成这项工作。这是我使用的代码:

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'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多