2013-07-10 18 views

回答

0

基于list的图形模块,没有太多的东西可以用来直接挑战您的挑战。 Google也很安静。
但是。

有一种方法,我会建议:使用node-canvas为了加载图像并将其绘制到画布中。然后,您可以使用getImageData访问像素,并随意使用它们。

顺便说一句,JPEG没有信道,仅RGB,而帆布确实有4个通道(RGBA )。

0

您可以使用GraphicsMagick工具转换为RGBA与http://aheckmann.github.io/gm/

产生的“格式”是操控方便普通RGBA流。

使用相同的模块将结果导出为您喜欢的任何格式。

0

谢谢。最后,我放弃了。

对我而言,工作原理是为现有的终端实用程序编写一个包装,并从服务器脚本调用它。效果很好! (:

1

选项1:jpeg-js

// First load Image 
var jpegData = fs.readFileSync('grumpycat.jpg'); 

// Decode Image 
var rawImageData = jpeg.decode(jpegData); 

// rawImageData => 
// { 
// data: [<red>, <green>, <blue>, <alpha>, <red>, <green>, <blue>, <alpha> ...] 
// width: 400 
// height: 300 
// } 

// Encode Image 
jpegData = jpeg.encode(rawImageData, 50); 

选项2:使用html5-canvas

function getImageData(url, callback){ 
    var canvas = document.getElementById('myCanvas'); 
    var context = canvas.getContext('2d'); 
    var img = new Image(); 
    img.onload = function(){ 
     context.drawImage(this, this.width, this.height); 
     callback(context.getImageData(0, 0, this.width, this.height)) 
    } 
    img.crossOrigin = 'Anonymous'; 
    img.src = url; 
} 


getImageData('<url-to-img>',function(imgData){ 
    console.log(imgData); 
});