【发布时间】:2017-08-18 03:39:31
【问题描述】:
我正在寻找一种方法来提取图像的所有 rgba 数据。
我从模块画布中遇到了getImageData() 方法,在我的情况下,对于 10x10,它返回一个仅为零的数组。下面是我现在如何提取数据。有什么意见,谢谢
fs.readFile(__dirname + '/image.jpg', function(err, data) {
if (err) throw err;
var img = new Canvas(10, 10)
img.src = data;
var c = img.getContext('2d');
var imgData = c.getImageData(0, 0, img.width, img.height);
})
【问题讨论】:
-
当您说图像的“所有 rgba 数据”时,您到底在要求什么?你想用画布做什么。可能更容易理解上下文:一旦你有了 rgba 数据,你打算做什么?
-
我的意思是一个接一个的数组中的rgba数据,就像我想要rgb数据一样,我使用canvas来获取数据,仅此而已。
-
我得到一个 400 元素数组,在 10x10 上调用 getImageData。那是RGB和A。我错过了什么?另外,如果你在 node 中,你使用的是 electron 还是 nwjs,或者你是如何获得 Canvas 的?
-
该死,是的,我也这样做,只是它充满了零,至少我登录控制台的前 100 个 - 检查了它们,全部为零。 (我知道我应该编辑问题,因为这不是它所说的)
-
这将返回正确的格式,但数据还不会在画布中。您需要将数据转换为 base 64,然后适当地预先添加详细信息。我相信我在下面的答案中的 dataURL 语法是正确的。祝你好运。我很快就要睡觉了,但会在上午入住。
标签: node.js image node-canvas