/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * The origin of this IDL file is * https://html.spec.whatwg.org/multipage/webappapis.html#images */ typedef (CanvasImageSource or Blob or ImageData) ImageBitmapSource; [Exposed=(Window,Worker)] interface ImageBitmap { [Constant] readonly attribute unsigned long width; [Constant] readonly attribute unsigned long height; }; // It's crucial that there be a way to explicitly dispose of ImageBitmaps // since they refer to potentially large graphics resources. Some uses // of this API proposal will result in repeated allocations of ImageBitmaps, // and garbage collection will not reliably reclaim them quickly enough. // Here we reuse close(), which also exists on another Transferable type, // MessagePort. Potentially, all Transferable types should inherit from a // new interface type "Closeable". partial interface ImageBitmap { // Dispose of all graphical resources associated with this ImageBitmap. undefined close(); }; enum ImageOrientation { "from-image", "flipY" }; enum PremultiplyAlpha { "none", "premultiply", "default" }; enum ColorSpaceConversion { "none", "default" }; enum ResizeQuality { "pixelated", "low", "medium", "high" }; dictionary ImageBitmapOptions { ImageOrientation imageOrientation = "from-image"; PremultiplyAlpha premultiplyAlpha = "default"; ColorSpaceConversion colorSpaceConversion = "default"; [EnforceRange] unsigned long resizeWidth; [EnforceRange] unsigned long resizeHeight; ResizeQuality resizeQuality = "low"; };