none
Capturar frame específico de um Vídeo RRS feed

  • Pergunta

  • Estou desenvolvendo um aplicativo em c++ e gostaria de saber se é possível capturar um frame específico (ao clicar um botão) de um vídeo que esteja sendo executado dentro do form (inseri o media player como componente para passar o vídeo)
    sábado, 21 de novembro de 2009 22:43

Todas as Respostas

  • Pode usar o BitBlt: http://msdn.microsoft.com/pt-br/library/aa930997.aspx

    Esta função transfere pixels de um HDC ao outro... a sua janela que roda o vídeo é o "Source HDC" você agora só precisa criar o destino

    Está aqui é uma função que pode ser útil a você ;D

    HBITMAP CopyBitmap( HBITMAP hbm) {
      HDC hdcSrc = CreateCompatibleDC(NULL);
      HDC hdcDst = CreateCompatibleDC(NULL);
      HBITMAP hbmOld, hbmOld2, hbmNew;
      BITMAP bm;
      GetObject(hbm, sizeof(bm), &bm);
      hbmOld = SelectObject(hdcSrc, hbm);
      hbmNew = CreateBitmap( bm.bmWidth, bm.bmHeight, bm.bmPlanes,
    bm.bmBitsPixel,
          NULL);
      hbmOld2 = SelectObject(hdcDst, hbmNew);
      BitBlt(hdcDst, 0, 0, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
      SelectObject(hdcSrc, hbmOld);
      DeleteDC(hdcSrc);
      DeleteDC(hdcDst);
      return hbmNew;
    }
    

    sexta-feira, 31 de dezembro de 2010 10:51