Window: createImageBitmap() method
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
* Some parts of this feature may have varying levels of support.
ThecreateImageBitmap() method of theWindow interface creates a bitmap from a given source, optionally cropped to contain only a portion of that source.It accepts a variety of different image sources, and returns aPromise which resolves to anImageBitmap.
In this article
Syntax
createImageBitmap(image)createImageBitmap(image, options)createImageBitmap(image, sx, sy, sw, sh)createImageBitmap(image, sx, sy, sw, sh, options)Parameters
imageAn image source, which can be any one of the following:
sxThe x coordinate of the reference point of the rectangle from which the
ImageBitmapwill be extracted.syThe y coordinate of the reference point of the rectangle from which the
ImageBitmapwill be extracted.swThe width of the rectangle from which the
ImageBitmapwill be extracted.This value can be negative.shThe height of the rectangle from which the
ImageBitmapwill be extracted. This value can be negative.optionsOptionalAn object that sets options for the image's extraction.The available options are:
imageOrientationSpecifies how the bitmap image should be oriented.
from-imageImage oriented according to EXIF orientation metadata, if present (default).
flipYImage oriented according to EXIF orientation metadata, if present, and then flipped vertically.
noneImage oriented according to image encoding, ignoring any metadata about the orientation (such as EXIF metadata, that might be added to an image to indicate that the camera was turned sideways to capture the image in portrait mode).
premultiplyAlphaSpecifies whether the bitmap's color channels should be premultiplied by the alpha channel.One of
none,premultiply, ordefault(default).colorSpaceConversionSpecifies whether the image should be decoded using color space conversion.Either
noneordefault(default).The valuedefaultindicates that implementation-specific behavior is used.resizeWidthA long integer that indicates the output width.
resizeHeightA long integer that indicates the output height.
resizeQualitySpecifies the algorithm to be used for resizing the input to match the output dimensions.One of
pixelated,low(default),medium, orhigh.
Return value
APromise which resolves to anImageBitmap object containing bitmap data from the given rectangle.
Examples
>Creating sprites from a sprite sheet
This example loads a sprite sheet, extracts individual sprites, and then renders eachsprite to the canvas. A sprite sheet is an image containing multiple smaller images,each of which you want to be able to render separately.
Original image:<img src="50x50.jpg" /><hr /><canvas></canvas>canvas { border: 2px solid green;}const canvas = document.getElementById("myCanvas"), ctx = canvas.getContext("2d"), image = new Image();// Wait for the sprite sheet to loadimage.onload = () => { Promise.all([ // Cut out two sprites from the sprite sheet createImageBitmap(image, 0, 0, 32, 32), createImageBitmap(image, 32, 0, 32, 32), createImageBitmap(image, 0, 0, 50, 50, { imageOrientation: "flipY" }), ]).then((sprites) => { // Draw each sprite onto the canvas ctx.drawImage(sprites[0], 0, 0); ctx.drawImage(sprites[1], 32, 32); ctx.drawImage(sprites[2], 64, 64); });};// Load the sprite sheet from an image fileimage.src = "50x50.jpg";Specifications
| Specification |
|---|
| HTML> # dom-createimagebitmap-dev> |