Méthode IWICPlanarBitmapFrameEncode ::WritePixels (wincodec.h)
Écrit les lignes des plans sources au format codé.
Syntaxe
HRESULT WritePixels(
UINT lineCount,
[in] WICBitmapPlane *pPlanes,
UINT cPlanes
);
Paramètres
lineCount
Type : UINT
Nombre de lignes à encoder. Consultez la section Remarques pour connaître les restrictions relatives au nombre de lignes spécifiques à WIC Jpeg.
[in] pPlanes
Type : WICBitmapPlane*
Spécifie les mémoires tampons sources pour chaque plan de composant encodé.
cPlanes
Type : UINT
Nombre de plans de composants spécifiés par le paramètre pPlanes .
Valeur retournée
Type : HRESULT
Si les plans et le rectangle source ne répondent pas aux exigences, cette méthode échoue avec WINCODEC_ERR_IMAGESIZEOUTOFRANGE.
Si le format IWICBitmapSource ne répond pas aux exigences de l’encodeur, cette méthode échoue avec WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT.
Remarques
Les appels WritePixels successifs sont supposés ajouter séquentiellement des lignes de balayage à l’image de sortie. IWICBitmapFrameEncode ::Initialize, IWICBitmapFrameEncode ::SetSize et IWICBitmapFrameEncode ::SetPixelFormat doivent être appelés avant que cette méthode échoue.
Le format de pixel entrelacé défini via IWICBitmapFrameEncode ::SetPixelFormat et les paramètres de codage spécifiques au codec déterminent les formats planaires pris en charge.
Encodeur JPEG WIC : QueryInterface peut être utilisé pour obtenir cette interface à partir de l’implémentation WIC JPEG IWICBitmapFrameEncode . Lorsque vous utilisez cette méthode pour encoder des données Y’CbCr avec l’encodeur JPEG WIC, le sous-échantillonnage chroma peut être configuré avec les options d’encodeur lors de la création de la trame. Pour plus d’informations, consultez Vue d’ensemble de l’encodage et IWICBitmapEncoder ::CreateNewFrame .
Selon le sous-échantillonnage chroma configuré, le paramètre lineCount présente les restrictions suivantes :
Sous-échantillonnage chroma | Restriction du nombre de lignes | Largeur du plan chromatique | Hauteur du plan chromatique |
---|---|---|---|
4:2:0 | Multiple de 2, sauf si l’appel couvre la dernière ligne de balayage de l’image | lumaWidth / 2 arrondi à l’entier le plus proche. | lumaHeight / 2 arrondi à l’entier le plus proche. |
4:2:2 | Quelconque | lumaWidth / 2 arrondi à l’entier le plus proche. | Quelconque |
4:4:4 | Quelconque | Quelconque | Quelconque |
4:4:0 | Multiple de 2, sauf si l’appel couvre la dernière ligne de balayage de l’image | Quelconque | llumaHeight / 2 arrondi à l’entier le plus proche. |
La largeur complète de la ligne de balayage doit être encodée, et la largeur des sources bitmap doit correspondre à leur configuration planaire.
En outre, si un format de pixel est défini via IWICBitmapFrameEncode ::SetPixelFormat, il doit être GUID_WICPixelFormat24bppBGR.
Les formats de pixels pris en charge des sources bitmap passées dans cette méthode sont les suivants :
Nombre de plans | Plan 1 | Plan 2 | Plan 3 |
---|---|---|---|
3 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat8bppCb | GUID_WICPixelFormat8bppCr |
2 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat16bppCbCr | N/A |
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | wincodec.h |
Bibliothèque | Windowscodecs.lib |
DLL | Windowscodecs.dll |