Compartilhar via


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

Grava linhas dos planos de origem no formato codificado.

Sintaxe

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

Parâmetros

[in] ppPlanes

Tipo: IWICBitmapSource**

Especifica uma matriz de IWICBitmapSource que representa planos de imagem.

cPlanes

Tipo: UINT

O número de planos de componente especificados pelo parâmetro planes.

prcSource

Tipo: WICRect*

O retângulo de origem de pixels a serem codificados dos planos IWICBitmapSource . Nulo indica toda a origem. A largura do rect de origem deve corresponder à largura definida por meio de SetSize. Chamadas repetidas do WriteSource podem ser feitas desde que a altura total acumulada do rect de origem seja a mesma definida por meio de SetSize.

Valor retornado

Tipo: HRESULT

Se os planos e o retângulo de origem não atenderem aos requisitos, esse método falhará com WINCODEC_ERR_IMAGESIZEOUTOFRANGE.

Se o formato IWICBitmapSource não atender aos requisitos do codificador, esse método falhará com WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT.

Comentários

As chamadas sucessivas do WriteSource são assumidas sequencialmente para adicionar linhas de verificação à imagem de saída. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize e IWICBitmapFrameEncode::SetPixelFormat devem ser chamados antes desse método ou ele falhará.

O formato de pixel intercalado definido por meio de IWICBitmapFrameEncode::SetPixelFormat e os parâmetros de codificação específicos do codec determinam os formatos planares com suporte.

Codificador WIC JPEG: QueryInterface pode ser usado para obter essa interface da implementação WIC JPEG IWICBitmapFrameEncode . Ao usar esse método para codificar dados Y'CbCr com o codificador JPEG WIC, a subamostragem chroma pode ser configurada com opções de codificador durante a criação do quadro. Consulte a Visão geral da codificação e IWICBitmapEncoder::CreateNewFrame para obter mais detalhes.

Dependendo da subamostragem de chroma configurada, o parâmetro lineCount tem as seguintes restrições:

Chroma Subsampling Coordenada X Coordenada Y Largura do Croma Altura de Chroma
4:2:0 Múltiplo de 2 Múltiplo de 2 lumaWidth / 2 Arredondado para cima até o inteiro mais próximo. lumaHeight /2 Arredondado para cima até o inteiro mais próximo.
4:2:2 Múltiplo de 2 Qualquer lumaWidth / 2 Arredondado para cima até o inteiro mais próximo. Qualquer
4:4:4 Qualquer Qualquer Qualquer Qualquer
4:4:0 Qualquer Múltiplo de 2 lumaWidth llumaHeight / 2 Arredondado para cima até o inteiro mais próximo.
 

A largura completa da linha de verificação deve ser codificada e a largura das fontes de bitmap deve corresponder à configuração planar.

Além disso, se um formato de pixel for definido por meio de IWICBitmapFrameEncode::SetPixelFormat, ele deverá ser GUID_WICPixelFormat24bppBGR.

Os formatos de pixel com suporte das fontes de bitmap passadas para esse método são os seguintes:

Contagem de planos Plano 1 Plano 2 Plano 3
3 GUID_WICPixelFormat8bppY GUID_WICPixelFormat8bppCb GUID_WICPixelFormat8bppCr
2 GUID_WICPixelFormat8bppY GUID_WICPixelFormat16bppCbCr N/D

Requisitos

   
Cliente mínimo com suporte Windows 8.1 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincodec.h
Biblioteca Windowscodecs.lib
DLL Windowscodecs.dll

Confira também

Visão geral da codificação

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode