【问题标题】:Use drawImage to draw pixel data on canvas使用 drawImage 在画布上绘制像素数据
【发布时间】:2012-10-01 23:19:20
【问题描述】:

我有一个像素数组,我想将它绘制到画布上,而不使用 putImageData,因为该函数会忽略剪辑数据。

所以,为了完成这项工作,我将像素数组转换为数据 url,然后将 url 附加到图像上,然后将其绘制到画布上,如下所示:

var ctx = {
    display: document.querySelector('canvas#display').getContext('2d'),
    convert: document.querySelector('canvas#convert').getContext('2d')
}

var image_data = THE_IMAGE_DATA_THAT_I_ALREADY_HAVE;

ctx.convert.putImageData(image_data, 0, 0);

var image_data_URL = ctx.convert.canvas.toDataURL('image/png');
var converter_image = document.querySelector('img#converter-image');

converter_image.onload = function () {
    ctx.display.save();
    ctx.display.beginPath();
    ctx.display.arc(320, 240, 240, 0, Math.PI*2, true);
    ctx.display.clip();
    ctx.display.drawImage(converter_image, 0, 0, 640, 480);
    ctx.display.restore();
}
converter_image.src = image_data_URL;

但是,这会带来非常糟糕的性能,尤其是因为我想以 60/秒的速度执行此操作。

一定有别的办法吧?

【问题讨论】:

    标签: javascript html canvas


    【解决方案1】:

    解决方法是使用 getImageData / putImageData 在屏幕外画布中绘制像素,然后将屏幕外画布重新绘制到画布中。

    更多信息:

    Canvas offscreen

    Pixel drawing with putImagedata (click on the blank in top of the code to launch it)

    【讨论】:

    猜你喜欢
    • 2013-03-28
    • 2013-11-01
    • 2018-11-30
    • 2015-11-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多