如何截取MediaPlayer1播放MPEG文件的图象,我想读到每一帧的像素点

haidao17 2004-10-13 05:01:14
我想读到每一帧的像素点.
我的代码如下,拷贝不出来.
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (!OpenDialog1->Execute())
{
return;
}

MediaPlayer1->FileName = OpenDialog1->FileName;

MediaPlayer1->Display = Form1;
MediaPlayer1->Open();

Graphics::TBitmap *pbmp;
String fn = "c:\\fbmp";

//获取0-20帧 的点阵数据
for (int i = 0; i < 20; i++)
{
MediaPlayer1->Position = i;
Sleep(100);
Application->ProcessMessages();
pbmp = GetFormImage();//这里我尝试了 Image的 CopyRect
//BitBlt() 以及最笨的'拷贝屏幕'都还是无法获取
//特求高手帮忙截取下....

pbmp->SaveToFile(fn + IntToStr(i) + ".bmp");
Sleep(100);
Application->ProcessMessages();
}
}

只要把每帧的图象数据保存到BMP文件中即可.....
我自己会读BMP文件的像素.......谢谢!
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
haidao17 2005-01-15
  • 打赏
  • 举报
回复
顶出去
weill 2005-01-15
  • 打赏
  • 举报
回复
上一楼可能是高手,没试,等结果,呵呵。
fanxiaoxing 2005-01-15
  • 打赏
  • 举报
回复
开了DirectX加速的屏幕拷贝不下
方案1:在显示属性里关闭Directx加速
方案2:使用DirectShow
lqbj991 2005-01-15
  • 打赏
  • 举报
回复
关注,帮忙顶
haidao17 2004-10-15
  • 打赏
  • 举报
回复
播放是很容易,我想得到播放出来的每一帧图象的位图(像素值)
haidao17 2004-10-14
  • 打赏
  • 举报
回复
大虾们呢?!
thp 2004-10-14
  • 打赏
  • 举报
回复
tccsdn 2004-10-14
  • 打赏
  • 举报
回复
在自己的程序里面播放的的视频很容易的啊
free1688 2004-10-14
  • 打赏
  • 举报
回复
没试过,帮你顶起。
haidao17 2004-10-14
  • 打赏
  • 举报
回复
顶...............

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧