IWICPlanarBitmapFrameEncode::WritePixels-Methode (wincodec.h)

Schreibt Zeilen von den Quellebenen in das codierte Format.

Syntax

HRESULT WritePixels(
       UINT           lineCount,
  [in] WICBitmapPlane *pPlanes,
       UINT           cPlanes
);

Parameter

lineCount

Typ: UINT

Die Anzahl der zu codierenden Zeilen. Im Abschnitt Hinweise finden Sie informationen zu einschränkungen der WIC Jpeg-spezifischen Zeilenanzahl.

[in] pPlanes

Typ: WICBitmapPlane*

Gibt die Quellpuffer für jede codierte Komponentenebene an.

cPlanes

Typ: UINT

Die Anzahl der vom pPlanes-Parameter angegebenen Komponentenebenen .

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 aufeinanderfolgende WritePixels-Aufrufe dem Ausgabebild sequenziell Scanlines hinzugefügt werden. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize und IWICBitmapFrameEncode::SetPixelFormat 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-Subsampling hat der lineCount-Parameter die folgenden Einschränkungen:

Chroma-Subsampling Einschränkung der Zeilenanzahl Breite der Chromaebene Höhe der Chromaebene
4:2:0 Vielfaches von 2, es sei denn, der Anruf deckt die letzte Scanlinie des Bilds ab. lumaWidth / 2 Auf die nächste ganze Zahl aufgerundet. lumaHeight / 2 auf die nächste ganze Zahl aufgerundet.
4:2:2 Any lumaWidth / 2 Auf die nächste ganze Zahl aufgerundet. Any
4:4:4 Any Any Any
4:4:0 Vielfaches von 2, es sei denn, der Anruf deckt die letzte Scanlinie des Bilds ab. Any llumaHeight / 2 aufgerundet auf die nächste ganze Zahl.
 

Die vollständige Scanlinienbreite 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 An diese Methode übergebenen Bitmapquellen sind wie folgt:

Ebenenanzahl Ebene 1 Ebene 2 Ebene 3
3 GUID_WICPixelFormat8bppY GUID_WICPixelFormat8bppCb GUID_WICPixelFormat8bppCr
2 GUID_WICPixelFormat8bppY GUID_WICPixelFormat16bppCbCr

Anforderungen

Anforderung Wert
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

Weitere Informationen

Übersicht über die Codierung

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode