IWICPlanarBitmapFrameEncode::WriteSource-Methode (wincodec.h)
Schreibt Zeilen von den Quellebenen in das codierte Format.
Syntax
HRESULT WriteSource(
[in] IWICBitmapSource **ppPlanes,
UINT cPlanes,
WICRect *prcSource
);
Parameter
[in] ppPlanes
Typ: IWICBitmapSource**
Gibt ein Array von IWICBitmapSource an, das Bildebenen darstellt.
cPlanes
Typ: UINT
Die Anzahl der komponentenebenen, die durch den Parameter "planes" angegeben wird.
prcSource
Typ: WICRect*
Das Quellrechteck von Pixeln, die aus den IWICBitmapSource-Ebenen codiert werden sollen. Null gibt die gesamte Quelle an. Die Breite des Quellrekts muss mit der breite übereinstimmen, die über SetSize festgelegt wurde. Wiederholte WriteSource-Aufrufe können ausgeführt werden, solange die gesamt akkumulierte Quellrekthöhe mit der durch SetSize festgelegten identisch ist.
Rückgabewert
Typ: HRESULT
Wenn die Ebenen und das Quellrechteck die Anforderungen nicht erfüllen, schlägt diese Methode mit WINCODEC_ERR_IMAGESIZEOUTOFRANGE fehl.
Wenn das IWICBitmapSource-Format die Encoderanforderungen nicht erfüllt, schlägt diese Methode mit WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT fehl.
Hinweise
Es wird davon ausgegangen, dass nachfolgende WriteSource-Aufrufe dem Ausgabebild sequenziell Scanlines hinzufügen. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize und IWICBitmapFrameEncode::SetFormat müssen aufgerufen werden, bevor diese Methode fehlschlägt.
Das über IWICBitmapFrameEncode::SetPixelFormat festgelegte verschachtelte Pixelformat und die codecspezifischen Codierungsparameter bestimmen die unterstützten planaren Formate.
WIC JPEG Encoder: QueryInterface kann verwendet werden, um diese Schnittstelle aus der WIC JPEG IWICBitmapFrameEncode-Implementierung abzurufen. Wenn Sie diese Methode verwenden, um Y'CbCr-Daten mit dem WIC JPEG-Encoder zu codieren, kann die Chroma-Subsampling während der Frameerstellung mit Encoderoptionen konfiguriert werden. Weitere Informationen finden Sie unter Codierungsübersicht und IWICBitmapEncoder::CreateNewFrame .
Abhängig von der konfigurierten Chroma-Untersampling hat der parameter lineCount die folgenden Einschränkungen:
Chroma-Untersampling | x-Koordinate | y-Koordinate | Farbbreite | Chromahöhe |
---|---|---|---|---|
4:2:0 | Vielfaches von 2 | Vielfaches von 2 | lumaWidth / 2 Auf die nächste ganze Zahl aufgerundet. | lumaHeight / 2 Auf die nächste ganze Zahl aufgerundet. |
4:2:2 | Vielfaches von 2 | Any | lumaWidth / 2 Auf die nächste ganze Zahl aufgerundet. | Any |
4:4:4 | Any | Any | Any | Any |
4:4:0 | Any | Vielfaches von 2 | lumaWidth | llumaHeight / 2 Auf die nächste ganze Zahl aufgerundet. |
Die gesamte Scanlinebreite muss codiert sein, und die Breite der Bitmapquellen muss mit ihrer planaren Konfiguration übereinstimmen.
Wenn ein Pixelformat über IWICBitmapFrameEncode::SetPixelFormat festgelegt wird, muss es GUID_WICPixelFormat24bppBGR werden.
Die unterstützten Pixelformate der Bitmapquellen, die an diese Methode übergeben werden, sind wie folgt:
Ebenenanzahl | Ebene 1 | Ebene 2 | Ebene 3 |
---|---|---|---|
3 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat8bppCb | GUID_WICPixelFormat8bppCr |
2 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat16bppCbCr | – |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8.1 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | wincodec.h |
Bibliothek | Windowscodecs.lib |
DLL | Windowscodecs.dll |