Méthode IWICPlanarBitmapFrameEncode::WriteSource (wincodec.h)

Écrit les lignes des plans sources au format codé.

Syntaxe

HRESULT WriteSource(
  [in] IWICBitmapSource **ppPlanes,
       UINT             cPlanes,
       WICRect          *prcSource
);

Paramètres

[in] ppPlanes

Type : IWICBitmapSource**

Spécifie un tableau de IWICBitmapSource qui représente des plans d’image.

cPlanes

Type : UINT

Nombre de plans de composants spécifiés par le paramètre planes.

prcSource

Type : WICRect*

Rectangle source de pixels à encoder à partir des plans IWICBitmapSource . Null indique la source entière. La largeur rect source doit correspondre à la largeur définie via SetSize. Les appels WriteSource répétés peuvent être effectués tant que la hauteur totale de rect de la source cumulée est la même que celle définie via SetSize.

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 WriteSource 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 X Coordinate Y Coordinate Largeur chromatique Hauteur chromatique
4:2:0 Multiple de 2 Multiple de 2 lumaWidth / 2 arrondi à l’entier le plus proche. lumaHeight / 2 arrondi à l’entier le plus proche.
4:2:2 Multiple de 2 Quelconque lumaWidth / 2 arrondi à l’entier le plus proche. Quelconque
4:4:4 Quelconque Quelconque Quelconque Quelconque
4:4:0 Quelconque Multiple de 2 lumaWidth 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

   
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

Voir aussi

Vue d’ensemble de l’encodage

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode