OffscreenCanvas: convertToBlob() 方法

Baseline 廣泛可用 *

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

* 此特性的某些部分可能存在不同級別的支援。

注意:此功能在 Web Workers 中可用。

OffscreenCanvas.convertToBlob() 方法建立一個 Blob 物件,該物件代表 Canvas 中包含的影像。

可以指定所需的輸出格式和影像質量。如果未指定檔案格式,或者給定的格式不受支援,則資料將以 image/png 格式匯出。瀏覽器必須支援 image/png;許多瀏覽器還會支援其他格式,包括 image/jpegimage/webp

對於支援編碼解析度元資料的格式,生成的影像解析度為 96dpi。

語法

js
convertToBlob()
convertToBlob(options)

引數

options 可選

具有以下屬性的物件:

type

一個指示影像格式的字串。預設型別是 image/png;如果指定的型別不受支援,也將使用此影像格式。

quality

一個介於 01 之間的 Number,指示在使用支援有失真壓縮的檔案格式(如 image/jpegimage/webp)建立影像時要使用的影像質量。如果未指定此選項,或者該數字超出了允許的範圍,則使用者代理將使用其預設質量值。

返回值

一個返回 Blob 物件的 Promise,該物件代表 Canvas 中包含的影像。

異常

該 Promise 可能會因為以下異常而被拒絕:

InvalidStateError DOMException

OffscreenCanvas 未分離;換句話說,它仍然與 DOM 相關聯,而不是與當前工作執行緒相關聯。

SecurityError DOMException

Canvas 上下文模式為 2d,並且點陣圖不是源淨的;至少部分內容已從載入文件的站點以外的其他站點載入,或者可能已載入。

IndexSizeError DOMException

Canvas 點陣圖沒有畫素(水平或垂直尺寸為零)。

EncodingError DOMException

由於編碼錯誤,無法建立 blob。

示例

js
const offscreen = new OffscreenCanvas(256, 256);
const gl = offscreen.getContext("webgl");

// Perform some drawing using the gl context

offscreen.convertToBlob().then((blob) => console.log(blob));
// Blob { size: 334, type: "image/png" }

規範

規範
HTML
# dom-offscreencanvas-converttoblob-dev

瀏覽器相容性

另見