Compartilhar via


Como criar um decodificador usando um nome de arquivo de imagem

Este tópico descreve como criar um decodificador de bitmap usando um nome de arquivo de imagem.

Para criar um decodificador de bitmap usando um nome de arquivo de imagem

  1. Crie um objeto IWICImagingFactory para criar objetos WIC (Componente de Imagem do Windows).

    // Create WIC factory
    hr = CoCreateInstance(
        CLSID_WICImagingFactory,
        NULL,
        CLSCTX_INPROC_SERVER,
        IID_PPV_ARGS(&m_pIWICFactory)
        );
    
  2. Use o método CreateDecoderFromFilename para criar um IWICBitmapDecoder de um arquivo de imagem.

    HRESULT hr = S_OK;
    
    IWICBitmapDecoder *pIDecoder = NULL;
    IWICBitmapFrameDecode *pIDecoderFrame  = NULL;
    
    hr = m_pIWICFactory->CreateDecoderFromFilename(
       L"turtle.jpg",                  // Image to be decoded
       NULL,                           // Do not prefer a particular vendor
       GENERIC_READ,                   // Desired read access to the file
       WICDecodeMetadataCacheOnDemand, // Cache metadata when needed
       &pIDecoder                      // Pointer to the decoder
       );
    
  3. Obtenha o primeiro IWICBitmapFrameDecode da imagem.

    // Retrieve the first bitmap frame.
    if (SUCCEEDED(hr))
    {
       hr = pIDecoder->GetFrame(0, &pIDecoderFrame);
    }
    

    O formato de arquivo JPEG dá suporte apenas a um único quadro. Como o arquivo neste exemplo é um arquivo JPEG, o primeiro quadro (0) é usado. Para formatos de imagem que têm vários quadros, consulte Como recuperar os quadros de uma imagem para acessar cada quadro da imagem.

  4. Processe o quadro de imagem. Para obter informações adicionais sobre objetos IWICBitmapSource , consulte a Visão geral de fontes de bitmap.

Consulte Também

Guia de programação

Referência

Amostras