self.createImageBitmap()

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

Syntax

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

Parameters

image

一个图像源,可以是一个 <img>, SVG <image>, <video>, <canvas>, HTMLImageElement, SVGImageElement (en-US), HTMLVideoElement, HTMLCanvasElement, Blob, ImageData, ImageBitmap, 或 OffscreenCanvas 对象。

sx

裁剪点 x 坐标。

sy

裁剪点 y 坐标。

sw

裁剪宽度,值可为负数。

sh

裁剪高度,值可为负数。

options 可选

为其设置选项的对象。可用的选项是:

  • imageOrientation: 指示图像是按原样呈现还是垂直翻转。none (默认不翻转) 或 flipY.
  • premultiplyAlpha: 指示位图颜色通道由 alpha 通道预乘。选择其一:none, premultiply, 或 default (默认).
  • colorSpaceConversion: 指示图像是否使用色彩空间转换进行解码。nonedefault (默认). The value default indicates that implementation-specific behavior is used.
  • resizeWidth: 指示新宽度的长整数。
  • resizeHeight: 指示新高度的长整数。
  • resizeQuality: 指定图像缩放算法。选择其一pixelated, low (默认), medium, 或 high.

Return value

返回一个解决 ImageBitmap 的Promise (en-US) ,当 Promise 成功时 resolves 接收一个包含所得到的矩形的位图数据ImageBitmap

Example

js
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
HTML Standard
# dom-createimagebitmap-dev

Browser compatibility

BCD tables only load in the browser

See also