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

El método createImageBitmap() crea un bitmap a partir de un recurso especificado, opcionalmente recortado para mostrar únicamente una porción de este. El método existe a nivel global como parte, tanto de las ventanas (window), como de los workers. Este admite una variedad de tipos de entrada, y devuelve una {{domxref("Promise")}} que es resuelta con un {{domxref("ImageBitmap")}}.

Sintaxis

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

Parámetros

image
Un recurso/imagen origen, que puede uno de los siguientes elementos: {{HTMLElement("img")}}, SVG {{SVGElement("image")}}, {{HTMLElement("video")}}, {{HTMLElement("canvas")}}, {{domxref("HTMLImageElement")}}, {{domxref("SVGImageElement")}}, {{domxref("HTMLVideoElement")}}, {{domxref("HTMLCanvasElement")}}, {{domxref("Blob")}}, {{domxref("ImageData")}}, {{domxref("ImageBitmap")}}, o {{domxref("OffscreenCanvas")}}.
sx
La coordenada x del rectángulo que será usado para la extracción del ImageBitmap.
sy
La coordenada y del rectángulo que será usado para la extracción del ImageBitmap.
sw
La anchura del rectángulo que será usado para extraer el ImageBitmap. El valor podría ser negativo.
sh
La altura del rectángulo que será usado para extraer el ImageBitmap. El valor podría ser negativo.
options {{optional_inline}}
Un objeto que proporciona opciones para la extracción de la imagen. Las opciones posibles son:

Valor devuelto

Una {{domxref("Promise")}} que es resuelta con un objeto {{domxref("ImageBitmap")}}, el cual contiene los datos del mapa de bits generado para el rectángulo dado.

Ejemplo

Creando sprites desde un sprite sheet

El siguiente ejemplo carga un sprite sheet, extrae los sprites, y muestra cada uno de ellos en el canvas. Un sprite sheet es una imagen que contiene multiples imágenes más pequeñas, que finalmente son utilizadas de manera individual.

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

// Esperar que el sprite sheet se cargue
image.onload = function() {
  Promise.all([
    // Recortar dos sprites del conjunto
    createImageBitmap(image, 0, 0, 32, 32),
    createImageBitmap(image, 32, 0, 32, 32)
  ]).then(function(sprites) {
    // Pintar cada uno de los sprites en el canvas
    ctx.drawImage(sprites[0], 0, 0);
    ctx.drawImage(sprites[1], 32, 32);
  });
}

// Cargar el sprite sheet desde un archivo de imagen
image.src = 'sprites.png';

Especificaciones

Especificación Estado  Comentario
{{SpecName('HTML WHATWG', "webappapis.html#dom-createimagebitmap", "createImageBitmap")}} {{Spec2('HTML WHATWG')}}  

Compatibilidad con navegadores

{{Compat("api.WindowOrWorkerGlobalScope.createImageBitmap")}}

Ver también