Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. GPUQueue
  4. copyExternalImageToTexture()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

GPUQueue: Methode copyExternalImageToTexture()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DiecopyExternalImageToTexture() Methode desGPUQueue-Interfaces kopiert einen Schnappschuss, der von einem Quellbild, Video oder Canvas aufgenommen wurde, in eine gegebeneGPUTexture.

Durch die Verwendung dieser Funktion kann der Benutzeragent die effizienteste Methode zum Übertragen der Daten für jeden Quelltyp bestimmen.

Syntax

js
copyExternalImageToTexture(source, destination, copySize)

Parameter

source

Ein Objekt, das die Quelle darstellt, die zum Ziel geschrieben werden soll, sowie deren Ursprung. Dies kann die folgenden Eigenschaften haben:

source

Ein Objekt, das die Quelle des Schnappschusses bereitstellt, der kopiert werden soll. Dies kann einHTMLCanvasElement,HTMLImageElement,HTMLVideoElement,ImageBitmap,ImageData,OffscreenCanvas oderVideoFrame-Objekt sein. Die Bildquelldaten werden genau in dem Moment erfasst, wenncopyExternalImageToTexture() aufgerufen wird.

originOptional

Ein Objekt oder Array, das den Ursprung der Kopie spezifiziert – die obere linke Ecke des Quellsubbereichs, von dem kopiert werden soll. Zusammen mitcopySize definiert dies das volle Ausmaß des Quellsubbereichs. Diex- undy-Werte standardisieren auf 0, wennorigin vollständig oder teilweise weggelassen wird.

Zum Beispiel können Sie ein Array wie[0, 0] oder das entsprechende Objekt{ x: 0, y: 0 } übergeben.

flipYOptional

Ein boolescher Wert. Wenn auftrue gesetzt, wird die Bildaufnahme vertikal gespiegelt. Wenn ausgelassen, standardisiertflipY auffalse.

destination

Ein Objekt, das die Textur-Subressource und den Ursprung definiert, um das aufgenommene Bild zu schreiben, sowie Metadaten zur Kodierung. Dies kann die folgenden Eigenschaften haben:

aspectOptional

Ein enumerierter Wert, der definiert, auf welche Aspekte der Textur das Bild geschrieben werden soll. Mögliche Werte sind:

"all"

Alle verfügbaren Aspekte des Texturformats werden beschrieben, das kann Farb-, Tiefen- und Stencil-Aspekte bedeuten, abhängig von dem verwendeten Format.

"depth-only"

Nur der Tiefenaspekt einesdepth-or-stencil format wird beschrieben.

"stencil-only"

Nur der Stencil-Aspekt eines Depth-or-Stencil-Formats wird beschrieben.

Wenn ausgelassen, nimmtaspect den Wert"all" an.

colorSpaceOptional

Ein enumerierter Wert, der den Farbraum und die Kodierung beschreibt, die verwendet werden, um Daten in die Zieltextur zu kodieren. Mögliche Werte sind"srgb" und"display-p3". Wenn ausgelassen, standardisiertcolorSpace auf"srgb".

Hinweis:Die Kodierung kann dazu führen, dass Werte außerhalb des Bereichs[0, 1] in die Zieltextur geschrieben werden, wenn deren Format diese darstellen kann. Andernfalls werden die Ergebnisse auf den Bereich des Zieltexturformats beschränkt. Eine Konvertierung ist möglicherweise nicht notwendig, wenncolorSpace mit dem Farbraum des Quellbilds übereinstimmt.

mipLevelOptional

Eine Zahl, die das Mip-Map-Level der Textur darstellt, auf das das Bild geschrieben werden soll. Wenn ausgelassen, standardisiertmipLevel auf 0.

originOptional

Ein Objekt oder Array, das den Ursprung der Kopie spezifiziert – die minimale Ecke des Texturbereichs, in den die Bilddaten geschrieben werden sollen. Zusammen mitcopySize definiert dies das volle Ausmaß des Bereichs, in den kopiert werden soll. Diex-,y- undz-Werte standardisieren auf 0, wennorigin vollständig oder teilweise weggelassen wird.

Zum Beispiel können Sie ein Array wie[0, 0, 0] oder das entsprechende Objekt{ x: 0, y: 0, z: 0 } übergeben.

premultipliedAlphaOptional

Ein boolescher Wert. Wenn auftrue gesetzt, werden die RGB-Kanäle der Bilddaten, die in die Textur geschrieben wurden, mit dem Alphakanal vorvermultipliziert. Wenn ausgelassen, standardisiertpremultipliedAlpha auffalse.

Hinweis:Wenn diese Option auftrue gesetzt ist und diesource auch vorvermultipliziert ist, müssen die Quell-RGB-Werte beibehalten werden, selbst wenn sie ihre entsprechenden Alphawerte überschreiten.

texture

EinGPUTexture-Objekt, das die Textur darstellt, in die die Daten geschrieben werden sollen.

copySize

Ein Objekt oder Array, daswidth,height unddepthOrArrayLayers — des Bereichs, von dem/zu dem kopiert werden soll, spezifiziert.

Zum Beispiel können Sie ein Array wie[16, 1, 1] oder das entsprechende Objekt{ width: 16, height: 1, depthOrArrayLayers: 1 } übergeben.

Derwidth-Wert muss angegeben werden. Wenn dieheight- oderdepthOrArrayLayers-Werte ausgelassen werden, standardisieren sie auf 1.

Rückgabewert

Keiner (Undefined).

Ausnahmen

OperationErrorDOMException

Die Methode wirft einenOperationError, wenn die folgenden Kriterien nicht erfüllt sind:

  • source.origin.x + die Breite des zu kopierenden Bereichs ist kleiner oder gleich der Breite des Quellbilds.
  • source.origin.y + die Höhe des zu kopierenden Bereichs ist kleiner oder gleich der Höhe des Quellbilds.
  • source.origin.z + die depthOrArrayLayers des zu kopierenden Bereichs ist kleiner oder gleich 1.
  • dataOffset ist gleich oder kleiner als die Größe vondata.
  • Die Größe vondata (wenn in Bytes umgewandelt, im Fall vonTypedArrays) ist ein Vielfaches von 4.
SecurityErrorDOMException

Wird ausgelöst, wenn die Bildquelldaten plattformübergreifend sind.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wennwriteTexture() aufgerufen wird, andernfalls wird einGPUValidationError generiert und dieGPUQueue wird ungültig:

Beispiele

Im WebGPU SamplesTextured Cube-Beispiel wird das folgende Snippet verwendet, um ein Bild abzurufen und es in eineGPUTexture hochzuladen:

js
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],  );}

Spezifikationen

Specification
WebGPU
# dom-gpuqueue-copyexternalimagetotexture

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp