Run details:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
Chrome 96
Linux
Desktop
3 years ago
Test name Executions per second
Image 4060367.0 Ops/sec
Bitmap 3577051.5 Ops/sec
Script Preparation code:
x
 
var img = new window.Image()
var imageBitmap
const canvas = document.createElement('canvas')
canvas.width = 640
canvas.height = 480
var ctx = canvas.getContext('2d')
var promise = new Promise(resolve => {
    img.addEventListener('load', function() {
        window.createImageBitmap(img)
            .then(function(bitmap) {
                imageBitmap = bitmap
                resolve()
            })
    })
})
img.src = 'https://1.bp.blogspot.com/-52MtzD0GfX0/WvP52CL1WjI/AAAAAAAAOVw/_OpK4JHeWK01d-7IiZ6vzojYGhXqLRXrACLcBGAs/s1600/EMxediL.jpg';
Tests:
  • Image

     
    promise.then(()=> ctx.drawImage(img, 0, 0));
  • Bitmap

     
    promise.then(()=> ctx.drawImage(imageBitmap, 0, 0));