Canvas drawImage(canvasEl) vs putImageData

JavaScript performance comparison

Revision 42 of this test case created

Info

Test Canvas methods to detect any differences.

Preparation code

<img src="data:image/png;base64,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%3D%3D"
id="imgd">

<canvas width=364 height="126" id="c1">
</canvas>
<canvas width=364 height="450" id="c2">
</canvas>

<script>
  var c1 = document.getElementById('c1').getContext('2d');
  var c2 = document.getElementById('c2').getContext('2d');
  var c2_c = document.getElementById('c2');
  var img = document.getElementById('imgd');
  c1.drawImage(img, 0, 0);
var wb2 = Math.floor(img.width/2);
var hb2 = Math.floor(img.height/2);

var bufferCanvas = document.createElement('canvas'),
bufferContext = bufferCanvas.getContext('2d');
bufferCanvas.width = wb2;
bufferCanvas.height = hb2;

var pos = 0;
bufferContext.drawImage(img, 0,0,wb2 , hb2, pos, 0,wb2,hb2);


var imgData = c1.getImageData(0, 0, wb2,hb2);

function drawImage() {
pos++;
pos %= 100;
  c2.drawImage(img, 0,0,wb2 , hb2, pos, 150,wb2,hb2);
}

function drawBufferCanvas() {
pos++;
pos %= 100;
c2.drawImage(bufferCanvas,pos,300);
}
function drawBufferCanvas2() {
pos++;
pos %= 100;
c2.globalAlpha = 0.5;
c2.drawImage(bufferCanvas,pos,300);
}
function getPutImage() {
pos++;
pos %= 100;
  c2.putImageData(imgData, pos, 0);
}
</script>

Preparation code output

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
getImageData/putImageData
getPutImage();
pending…
DrawImage(canvasEl)
drawImage();
pending…
Draw Buffer Canvas
drawBufferCanvas();
pending…
drawBufferCanvas2
drawBufferCanvas2();
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment