0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-12 07:07:43 -04:00
deno/cli/tsc/dts/lib.deno_canvas.d.ts

195 lines
5.3 KiB
TypeScript
Raw Normal View History

2025-01-01 04:12:39 +09:00
// Copyright 2018-2025 the Deno authors. MIT license.
2024-01-22 12:08:01 +01:00
// deno-lint-ignore-file no-var
/// <reference no-default-lib="true" />
/// <reference lib="esnext" />
/**
* Specifies whether the image should be decoded using color space conversion.
* Either none or default (default). The value default indicates that
* implementation-specific behavior is used.
*
* @category Canvas
*/
type ColorSpaceConversion = "default" | "none";
2024-01-22 12:08:01 +01:00
/**
* Specifies how the bitmap image should be oriented.
*
* @category Canvas
*/
type ImageOrientation = "flipY" | "from-image" | "none";
2024-01-22 12:08:01 +01:00
/**
* Specifies whether the bitmap's color channels should be premultiplied by
* the alpha channel.
*
* @category Canvas
*/
type PremultiplyAlpha = "default" | "none" | "premultiply";
2024-01-22 12:08:01 +01:00
/**
* Specifies the algorithm to be used for resizing the input to match the
* output dimensions. One of `pixelated`, `low` (default), `medium`, or `high`.
*
* @category Canvas
*/
type ResizeQuality = "high" | "low" | "medium" | "pixelated";
2024-01-22 12:08:01 +01:00
/**
* The `ImageBitmapSource` type represents an image data source that can be
* used to create an `ImageBitmap`.
*
* @category Canvas */
type ImageBitmapSource = Blob | ImageData | ImageBitmap;
2024-01-22 12:08:01 +01:00
/**
* The options of {@linkcode createImageBitmap}.
*
* @category Canvas */
interface ImageBitmapOptions {
/**
* Specifies whether the image should be decoded using color space
* conversion. Either none or default (default). The value default
* indicates that implementation-specific behavior is used.
*/
2024-01-22 12:08:01 +01:00
colorSpaceConversion?: ColorSpaceConversion;
/** Specifies how the bitmap image should be oriented. */
2024-01-22 12:08:01 +01:00
imageOrientation?: ImageOrientation;
/**
* Specifies whether the bitmap's color channels should be premultiplied
* by the alpha channel. One of none, premultiply, or default (default).
*/
2024-01-22 12:08:01 +01:00
premultiplyAlpha?: PremultiplyAlpha;
/** The output height. */
2024-01-22 12:08:01 +01:00
resizeHeight?: number;
/**
* Specifies the algorithm to be used for resizing the input to match the
* output dimensions. One of pixelated, low (default), medium, or high.
*/
2024-01-22 12:08:01 +01:00
resizeQuality?: ResizeQuality;
/** The output width. */
2024-01-22 12:08:01 +01:00
resizeWidth?: number;
}
/**
* Create a new {@linkcode ImageBitmap} object from a given source.
*
* @param image The image to create an {@linkcode ImageBitmap} from.
* @param options The options for creating the {@linkcode ImageBitmap}.
*
* @category Canvas
*
* @example
* ```ts
* try {
* // Fetch an image
* const response = await fetch("https://example.com/image.png");
* const blob = await response.blob();
*
* // Basic usage
* const basicBitmap = await createImageBitmap(blob);
* console.log("Basic bitmap size:", basicBitmap.width, basicBitmap.height);
*
* // With options
* const resizedBitmap = await createImageBitmap(blob, {
* resizeWidth: 100,
* resizeHeight: 100,
* resizeQuality: "high",
* imageOrientation: "flipY"
* });
*
* // Cleanup when done
* basicBitmap.close();
* resizedBitmap.close();
* } catch (error) {
* console.error("Failed to create ImageBitmap:", error);
* }
* ```
* @see https://developer.mozilla.org/en-US/docs/Web/API/createImageBitmap
*/
2024-01-22 12:08:01 +01:00
declare function createImageBitmap(
image: ImageBitmapSource,
options?: ImageBitmapOptions,
): Promise<ImageBitmap>;
/**
* Create a new {@linkcode ImageBitmap} object from a given source, cropping
* to the specified rectangle.
*
* @param image The image to create an {@linkcode ImageBitmap} from.
* @param sx The x coordinate of the top-left corner of the sub-rectangle from
* which the {@linkcode ImageBitmap} will be cropped.
* @param sy The y coordinate of the top-left corner of the sub-rectangle from
* which the {@linkcode ImageBitmap} will be cropped.
* @param sw The width of the sub-rectangle from which the
* {@linkcode ImageBitmap} will be cropped.
* @param sh The height of the sub-rectangle from which the
* {@linkcode ImageBitmap} will be cropped.
* @param options The options for creating the {@linkcode ImageBitmap}.
*
* @category Canvas
*
* @example
* ```ts
* try {
* // Fetch an image
* const response = await fetch("https://example.com/image.png");
* const blob = await response.blob();
*
* // Cropping parameters
* const croppedBitmap = await createImageBitmap(
* blob,
* 0, // sx: start x
* 0, // sy: start y
* 50, // sw: source width
* 50, // sh: source height
* );
*
* // Cleanup when done
* croppedBitmap.close();
* } catch (error) {
* console.error("Failed to create ImageBitmap:", error);
* }
* ```
* @see https://developer.mozilla.org/en-US/docs/Web/API/createImageBitmap/createImageBitmap
*/
2024-01-22 12:08:01 +01:00
declare function createImageBitmap(
image: ImageBitmapSource,
sx: number,
sy: number,
sw: number,
sh: number,
options?: ImageBitmapOptions,
): Promise<ImageBitmap>;
/**
* `ImageBitmap` interface represents a bitmap image which can be drawn to a canvas.
*
* @category Canvas
*/
interface ImageBitmap {
/**
* The height of the bitmap.
*/
2024-01-22 12:08:01 +01:00
readonly height: number;
/**
* The width of the bitmap.
*/
2024-01-22 12:08:01 +01:00
readonly width: number;
/**
* Releases imageBitmap's resources.
*/
2024-01-22 12:08:01 +01:00
close(): void;
}
/**
* `ImageBitmap` represents a bitmap image which can be drawn to a canvas.
*
* @category Canvas
*/
2024-01-22 12:08:01 +01:00
declare var ImageBitmap: {
prototype: ImageBitmap;
new (): ImageBitmap;
};