Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript globalcompositeoperation=源是否过度使用putimagedata?_Javascript_Html_Html5 Canvas - Fatal编程技术网

Javascript globalcompositeoperation=源是否过度使用putimagedata?

Javascript globalcompositeoperation=源是否过度使用putimagedata?,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我知道ctx.globalcompositeoperation=source over在使用drawimage时起作用,但它能与putimagedata一起工作吗?简短回答是否定的,复合模式不会影响putimagedata 使用putImageData通常比合成模式和上下文的级别低 我所说的较低级别是指它通过传递上下文和参数来改变用其他方法(翻译、样式等)绘制的内容 putImageData只是直接替换结果位图上的像素 您将需要使用drawImage来利用复合模式,这将更快,而且drawImag

我知道ctx.globalcompositeoperation=source over在使用drawimage时起作用,但它能与putimagedata一起工作吗?

简短回答是否定的,复合模式不会影响putimagedata

使用
putImageData
通常比合成模式和上下文的级别低

我所说的较低级别是指它通过传递上下文和参数来改变用其他方法(翻译、样式等)绘制的内容

putImageData只是直接替换结果位图上的像素


您将需要使用
drawImage
来利用复合模式,这将更快,而且
drawImage
直接与位图内存阵列一起工作。

因为它的级别较低,这是否意味着putImagData比drawImage快?@JohnBob的级别较低,我的意思是直接访问像素(上下文充当“中介者”)在操作和像素之间)
drawImage
更快,因为它在编译代码中内部填充缓冲区
putImageData
在将(键入的)数组数据复制到内部缓冲区之前,仍然需要先在JavaScript中执行几个步骤。