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 |