UNPKG

image-js

Version:

Image processing and manipulation in JavaScript

29 lines 1.21 kB
import { Image } from '../Image.js'; import { assert } from '../utils/validators/assert.js'; // TODO: Create nodejs version that throws an error /** * Draw the image in an HTML canvas. * @param image - The image to draw. * @param canvas - The HTML canvas. * @param options - Write canvas options. */ export function writeCanvas(image, canvas, options = {}) { if (image.colorModel !== 'RGBA') { image = image.convertColor('RGBA'); } if (image.bitDepth !== 8 && image instanceof Image) { image = image.convertBitDepth(8); } const { resizeCanvas = true, dx = 0, dy = 0, dirtyX = 0, dirtyY = 0, dirtyWidth = image.width, dirtyHeight = image.height, } = options; if (resizeCanvas) { canvas.width = image.width; canvas.height = image.height; } const ctx = canvas.getContext('2d'); assert(ctx); const data = image.getRawImage().data; ctx.putImageData(new ImageData( // @ts-expect-error ImageData types don't support SharedArrayBuffer. new Uint8ClampedArray(data.buffer, data.byteOffset, data.byteLength), image.width, image.height), dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight); } //# sourceMappingURL=writeCanvas.js.map