【问题标题】:save result of ndarray to image将ndarray的结果保存到图像
【发布时间】:2022-01-05 23:48:11
【问题描述】:

我有一张我拍摄了一张图片,我正在尝试将这张图片保存到一个文件中。

  1. 使用 getPixels 获取图像
  2. ndarray 的片段(我的目标是左上角)
  3. 将 ndarray 保存为新图像

我的代码:

var getPixels = require("get-pixels");
var fs = require("fs");
var savePixels = require("save-pixels");

let img='path_to_img_file'
getPixels(img, "image/jpeg", function (err, pixels) {
  if (err) {
    console.log("Bad image", err);
    return;
  }

  pixels = pixels.hi(50, 50, 50); //subset
  savePixels(pixels, "png").pipe((p) =>
    fs.createWriteStream(p, "shot.png")
  ); 

我的错误:

Unhandled error. ('No data provided')

【问题讨论】:

    标签: node.js image image-processing


    【解决方案1】:

    这对我有用:

    var getPixels = require("get-pixels");
    var fs = require("fs");
    var savePixels = require("save-pixels");
    
    
    let img='./output.png'
    
    getPixels(img, "image/png", function (err, pixels) {
         if (err) {
            console.log("Bad image", err);
            return;
        }
        // Save to output2.png
        savePixels(pixels, "png").pipe(fs.createWriteStream("./output2.png"));
    });
    

    我认为你的问题是你这样做了

    .pipe((p) =>
    

    据我所知,通常的语法是

    readableStream.pipe(writeableStream)
    

    而不是

    function.pipe((readableStream) => writeableStream.pipe(readableStream));
    

    【讨论】:

    • 我相信你错过了这一行:pixels = pixels.hi(50, 50, 50); 在你的例子中。那是导致我所有问题的行(当我做子集时)
    • 那条线引起了问题,但我可以删除它而不用担心它。我包含的代码在我身上完美运行;让我知道您是否有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2018-08-16
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多