0

我正在使用meteor.js 构建一个需要动态生成图像的应用程序。一大堆小的、动态生成的图像;逐个像素生成,它们总共需要每秒约 25000 个像素的图像。意识到这是相当大的计算负载,我决定使用 Meteor 的服务器方法来加速这个过程。

截至目前,这是我的功能尝试:

服务器端生成像素阵列

loadImage = function(){
    this.imagePixels = new Uint8Array(4*DIM*DIM);
    for(var i = 0; i < DIM; i++){
    for(var j = 0; j < DIM; j++){
        var x = 255*i/DIM;
        var y = 255*j/DIM;
        this.setPixel(this.imagePixels,
                      i, j, eval(this.redEQ)
                          , eval(this.greenEQ)
                          , eval(this.blueEQ)
                          , 255);
        }
    }
}

然后发生一些中间的事情(代码未显示),数据被发送回客户端,然后通过 uint8array.set 将“图像”放置到画布上:

var elem = document.getElementById(this.canvasID);
var ctx = elem.getContext('2d');
var imageData = ctx.getImageData(0, 0, DIM, DIM);
var data = imageData.data;
data.set(this.evo.pixels);
ctx.putImageData(imageData, 0, 0);

这一切都很好,除了……我需要速度。所以,话虽如此,这是我的问题:

是否可以在 node.js 中创建一个 JSON 可序列化图像,可以有效地放置在 HTML 画布上,如果可以,如何?

4

0 回答 0