--- title: self.createImageBitmap() slug: Web/API/createImageBitmap translation_of: Web/API/WindowOrWorkerGlobalScope/createImageBitmap original_slug: Web/API/WindowOrWorkerGlobalScope/createImageBitmap ---
{{APIRef("Canvas API")}}

createImageBitmap 方法存在 windows 和 workers 中. 它接受各种不同的图像来源, 并返回一个{{domxref("Promise")}}, resolve为{{domxref("ImageBitmap")}}. 可选地参数,图像被剪裁成自(sx,sy)且宽度为sw,高度为sh的像素的矩形。

Syntax

createImageBitmap(image[, options]).then(function(response) { ... });
createImageBitmap(image, sx, sy, sw, sh[, options]).then(function(response) { ... });

Parameters

image
一个图像源, 可以是一个 {{HTMLElement("img")}}, SVG {{SVGElement("image")}}, {{HTMLElement("video")}}, {{HTMLElement("canvas")}}, {{domxref("HTMLImageElement")}}, {{domxref("SVGImageElement")}}, {{domxref("HTMLVideoElement")}}, {{domxref("HTMLCanvasElement")}}, {{domxref("Blob")}}, {{domxref("ImageData")}}, {{domxref("ImageBitmap")}}, 或 {{domxref("OffscreenCanvas")}} 对象.
sx
裁剪点x坐标.
sy
裁剪点y坐标.
sw
裁剪宽度,值可为负数.
sh
裁剪高度,值可为负数.
options {{optional_inline}}
为其设置选项的对象。可用的选项是:

Return value

返回一个解决ImageBitmap的{{domxref("Promise")}} ,当Promise成功时resolves接收一个包含所得到的矩形的位图数据{{domxref("ImageBitmap")}}。

Example

var canvas = document.getElementById('myCanvas'),
ctx = canvas.getContext('2d'),
image = new Image();

image.onload = function() {
  Promise.all([
    createImageBitmap(this, 0, 0, 32, 32),
    createImageBitmap(this, 32, 0, 32, 32)
  ]).then(function(sprites) {
    ctx.drawImage(sprites[0], 0, 0);
    ctx.drawImage(sprites[1], 32, 32);
  });
}

image.src = 'sprites.png';

Specifications

Specification Status Comment
{{SpecName('HTML WHATWG', "webappapis.html#dom-createimagebitmap", "createImageBitmap")}} {{Spec2('HTML WHATWG')}}  

Browser compatibility

{{ CompatibilityTable}}

Feature Chrome Firefox (Gecko) Edge Internet Explorer Opera Safari
Basic support {{CompatChrome(50)}}

{{CompatGeckoDesktop(42)}}
{{CompatGeckoDesktop(52)}}[1]

{{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}
options parameter {{CompatChrome(52)}} {{CompatUnknown}} {{CompatNo}} {{CompatNo}} 39 {{CompatNo}}
resizeWidth, resizeHeight, and resizeQuality {{CompatChrome(54)}} {{CompatUnknown}} {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}}
SVGImageElement as source image {{CompatChrome(59)}} {{CompatUnknown}} {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}}
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatChrome(50)}} {{CompatChrome(50)}}

{{CompatGeckomobile(42)}}
{{CompatGeckoMobile(52)}}[1]

{{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}}
options parameter {{CompatChrome(52)}} {{CompatChrome(52)}} {{CompatUnknown}} {{CompatUnknown}} 39 {{CompatUnknown}}
resizeWidth, resizeHeight, and resizeQuality {{CompatChrome(54)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}  
SVGImageElement as source image {{CompatChrome(59)}} {{CompatChrome(59)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

[1] createImageBitmap() now defined on {{domxref("WindowOrWorkerGlobalScope")}} mixin.

See also