Método IWICBitmapSource::CopyPixels (wincodec.h)

Instrui o objeto a produzir pixels.

Sintaxe

HRESULT CopyPixels(
  [in]  const WICRect *prc,
  [in]  UINT          cbStride,
  [in]  UINT          cbBufferSize,
  [out] BYTE          *pbBuffer
);

Parâmetros

[in] prc

Tipo: const WICRect*

O retângulo a ser copiado. Um valor NULL especifica todo o bitmap.

[in] cbStride

Tipo: UINT

O passo do bitmap

[in] cbBufferSize

Tipo: UINT

O tamanho do buffer.

[out] pbBuffer

Tipo: BYTE*

Um ponteiro para o buffer.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

CopyPixels é uma das duas rotinas de processamento de imagem main (a outra é Lock) disparando o processamento real. Ele instrui o objeto a produzir pixels de acordo com seu algoritmo – isso pode envolver a decodificação de uma parte de um JPEG armazenado em disco, a cópia de um bloco de memória ou até mesmo a computação analítica de um gradiente complexo. O algoritmo depende completamente do objeto que implementa a interface.

O chamador pode restringir a operação a um ROI (retângulo de interesse) usando o parâmetro prc. O sub-retângulo ROI deve estar totalmente contido nos limites do bitmap. Especificar um ROI NULL implica que todo o bitmap deve ser retornado.

O chamador controla o gerenciamento de memória e deve fornecer um buffer de saída (pbBuffer) para os resultados da cópia junto com os limites do buffer (cbBufferSize). O parâmetro cbStride define a contagem de bytes entre dois pixels adjacentes verticalmente no buffer de saída. O chamador deve garantir que haja buffer suficiente para concluir a chamada com base no formato de largura, altura e pixel do bitmap e no sub-retângulo fornecido ao método copy.

Se o chamador precisar executar várias cópias de um IWICBitmapSource caro, como um JPEG, é recomendável criar um IWICBitmap na memória primeiro.

Comentários do desenvolvedor do Codec

O receptor deve gravar apenas no primeiro (prc-Width>*bitsperpixel+7)/8 bytes de cada linha do buffer de saída (nesse caso, uma linha é uma cadeia de caracteres consecutiva de bytes cbStride ).

Requisitos

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