代码之家  ›  专栏  ›  技术社区  ›  Nikhil Kinkar

如何从中的图像获取图像数据node.js?[副本]

  •  0
  • Nikhil Kinkar  · 技术社区  · 8 年前

    我正在尝试读取图像,当您使用HTML画布“Uint8ClampedArray”时,我想要得到的结果是相同的? var imageData = ctx.getImageData(0, 0, width, height); 我找到了一个NPM库 canvas

    那么有没有别的方法不用画布呢?

    0 回复  |  直到 11 年前
        1
  •  5
  •   Jon Doe    7 年前

    要严格回答这个问题:

    ImageData / Uint8Array 对象)。

    这就是为什么 canvas libpng , libjpeg 以及其他本地库。

    装载 如果不使用画布(或本机库包装器)表示文件中的像素原始数据,则需要仅在Javascript中运行解码器。

    解码PNG

    png.js :

    const PNG = require('png-js');
    PNG.decode('./image.png', function(pixels) {
       // Pixels is a 1d array (in rgba order) of decoded pixel data
    });
    

    解码JPEG

    使用 inkjet

    const inkjet = require('inkjet');
    inkjet.decode(fs.readFileSync('./image.jpg'), function(err, decoded) {
      // decoded: { width: number, height: number, data: Uint8Array }
    });
    

    https://github.com/gchudnov/inkjet

        2
  •  3
  •   Krister Johansson    11 年前

    var pixelUtil = require('pixel-util'),
        Canvas = require('canvas');
    
    var image = new Canvas.Image,
    
    pixelUtil.createBuffer('http://127.0.0.1:8080/image/test.jpg').then(function(buffer){
        image.src = buffer;
    
        canvas = new Canvas(image.width, image.height);
    
        var ctx = canvas.getContext('2d');
        ctx.drawImage(image, 0, 0);
        runImage(ctx.getImageData(0, 0, canvas.width, canvas.height));
    });
    
    推荐文章