我们如何从榆树的图像中获取像素数据?
在JavaScript中,代码是获取图中一组像素的颜色(取自here)
var image = new Image;
image.src = "starry-night.jpg";
var canvas = d3.select("body").append("canvas");
var context = canvas.node().getContext("2d");
context.drawImage(image, 0, 0);
// beware variable name "image" got used twice
image = context.getImageData(0, 0, width, height);
var x = Math.random()*width,
y = Math.random()*height,
i = (y * width + x) << 2;
pixelColor = d3.rgb(image.data[i + 0], image.data[i + 1], image.data[i + 2]) + "";
代码将图像加载到<canvas>
元素,然后使用image.getImageData()
从画布中提取像素的颜色。
我们可以将image.data
对象与Elm对接吗?现在我认为不可能......
榆树有Virtual Dom。实际上这样的问题可能会在较低级别的virtual-dom
中得到解决,因此我们不鼓励我们直接这样做。
但是,Elm清楚地区分了Collage
元素和SVG
元素,没有明确的getImageData()
函数接口。
Left Shift
答案 0 :(得分:0)
如@SimonH所建议,请使用JS的端口,直到Elm提供这样做的第一手方法(如果有的话)。同样的方法适用于您在榆树中尚无法完成的任何事情。
为了其他人来到这里,我只是在回答,而不是评论。