GPUQueue: copyExternalImageToTexture() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Phương thức copyExternalImageToTexture() của giao diện GPUQueue sao chép một ảnh chụp từ ảnh nguồn, video hoặc canvas vào một GPUTexture được chỉ định.
Sử dụng hàm này cho phép tác nhân người dùng xác định cách sao chép dữ liệu hiệu quả nhất cho từng loại nguồn.
Cú pháp
copyExternalImageToTexture(source, destination, copySize)
Tham số
source-
Một đối tượng đại diện cho nguồn cần ghi vào đích, và gốc của nó. Có thể có các thuộc tính sau:
source-
Đối tượng cung cấp nguồn của ảnh chụp cần sao chép. Có thể là
HTMLCanvasElement,HTMLImageElement,HTMLVideoElement,ImageBitmap,ImageData,OffscreenCanvas, hoặcVideoFrame. originOptional-
Gốc của việc sao chép, tức là góc trên bên trái của vùng nguồn phụ cần sao chép từ đó. Mặc định là 0.
flipYOptional-
Giá trị boolean. Nếu đặt là
true, ảnh chụp bị lật dọc. Nếu bỏ qua,flipYmặc định làfalse.
destination-
Một đối tượng xác định subresource texture và gốc để ghi ảnh chụp vào, cùng metadata mã hóa.
copySize-
Một đối tượng hoặc mảng chỉ định
width,height, vàdepthOrArrayLayerscủa vùng cần sao chép từ/đến.
Giá trị trả về
Không có (Undefined).
Ngoại lệ
OperationErrorDOMException-
Được ném ra nếu các tiêu chí nhất định không được đáp ứng.
SecurityErrorDOMException-
Được ném ra nếu dữ liệu ảnh nguồn có nguồn gốc chéo (cross-origin).
Ví dụ
Trong WebGPU Samples Textured Cube example, đoạn mã sau được dùng để tải một ảnh và tải lên GPUTexture:
let cubeTexture;
{
const img = document.createElement("img");
img.src = new URL(
"../../../assets/img/Di-3d.png",
import.meta.url,
).toString();
await img.decode();
const imageBitmap = await createImageBitmap(img);
cubeTexture = device.createTexture({
size: [imageBitmap.width, imageBitmap.height, 1],
format: "rgba8unorm",
usage:
GPUTextureUsage.TEXTURE_BINDING |
GPUTextureUsage.COPY_DST |
GPUTextureUsage.RENDER_ATTACHMENT,
});
device.queue.copyExternalImageToTexture(
{ source: imageBitmap },
{ texture: cubeTexture },
[imageBitmap.width, imageBitmap.height],
);
}
Thông số kỹ thuật
| Specification |
|---|
| WebGPU> # dom-gpuqueue-copyexternalimagetotexture> |