国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用VC完成AVI文件的圖像截取

運用VC完成AVI文件的圖像截取

更新時間:2020-02-09 文章作者:未知 信息來源:網絡 閱讀次數:

作者: 劉濤

來源:www.yesky.com

AVI文件就是我們所說的多媒體文件,所謂的AVI圖像就是視頻圖像,該文件是一個RIFF說明文件,它用于獲取、編輯、演示音頻、視頻序列。一般的AVI文件包含音頻流和視頻流,有的特殊的AVI還包含一個控制路徑或MIDI路徑作為附加的數據流。

  現在播放AVI文件的軟件很多,但大多無法從AVI視頻文件中讀取一幀圖像并生成BMP格式的文件。筆者在使用AVI文件開發項目過程中對AVI文件的操作積累了一些經驗,對于如何實現從AVI視頻流中獲取任意幀的圖像數據并存儲成BMP文件,其中最關鍵的是要從AVI文件中獲取具體某一幀的圖像數據,為此我利用Windows提供的API函數實現了自定義的CAvi類,用于操作AVI文件。

  在使用API函數操作AVI文件時,一定要注意用AVIFileInit()來初始化AVI庫,程序結束時用AVIFileExit()釋放AVI庫,否則API函數無法使用。現以操作包含真彩色圖像的AVI文件為例,給出Cavi類的部分函數的具體實現,其中CaviCreate()函數用于讀取AVI文件信息并初始化Cavi類的成員,例如根據AVI文件信息定義每幀圖像的寬、高、每幀圖像的信息頭結構等等;函數AviRead(int mFrame)用于從AVI文件中讀取第mFrame幀。實現代碼顯示如下:

//Cavi類頭文件定義;
class CAvi file://AVI類,處理AVI文件
{
 public:
 int cy;//圖象高
 int cx;//圖象寬
 file://long m_maxFrame;
 BYTE *pData;//寸儲圖象數據
 BITMAPINFO *m_pBMI;//位圖文件信息頭
 PAVISTREAM pavi;//AVI流
 PAVIFILE pfile;//AVI文件指針
 AVIFILEINFO * pfi; file://AVI信息
 BOOL AviRead(int mFrame);//讀AVI文件的第mFrame幀
 CAvi();//標準構造函數
 CAviCreate(CString &string);//用文件名初始化AVI類的成員
 virtual ~CAvi();
};
//Cavi類文件實現部分;
CAvi::CAvi()
{ AVIFileInit();//初始化AVI庫
 cx=0;//定義圖象寬、高、等成員
 cy=0;
 m_pBMI=NULL;
 pData=NULL;
 file://m_maxFrame=0;
 pfi=NULL;
}
CAvi::~CAvi()//析構、釋放指針
{
 // AVIFileClose(pfile);
 AVIFileExit();
 if(pData!=NULL)
  delete pData;
  pData=NULL;

 if(m_pBMI!=NULL)
  delete m_pBMI;
  m_pBMI=NULL;
  if(pfi!=NULL)
   delete pfi;
   pfi=NULL;
}
CAvi::CAviCreate(CString &string)//讀文件初始化該類
{
 HRESULT hr;
 pfi=new AVIFILEINFO;
 hr = AVIFileOpen(&pfile, // returned file pointer
 string, // file name
 OF_READ, // mode to open file with
 NULL);
 hr= AVIFileInfo(pfile, file://獲取AVI信息,放入pfi中
 pfi,
 sizeof(AVIFILEINFO)
);
cx=pfi->dwWidth;//圖象寬、高
cy=pfi->dwHeight;
hr=AVIFileGetStream(//將AVI變成視頻流
pfile,
&pavi,
streamtypeVIDEO,
0//LONG lParam
);
m_pBMI=new BITMAPINFO;//定義BMP信息頭
m_pBMI->bmiHeader.biBitCount=24;
m_pBMI->bmiHeader.biClrImportant=0;
m_pBMI->bmiHeader.biClrUsed=0;
m_pBMI->bmiHeader.biCompression=BI_RGB;
m_pBMI->bmiHeader.biHeight=cy;
m_pBMI->bmiHeader.biWidth=cx;
m_pBMI->bmiHeader.biPlanes=1;
m_pBMI->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
m_pBMI->bmiHeader.biXPelsPerMeter=0;
m_pBMI->bmiHeader.biYPelsPerMeter=0;
m_pBMI->bmiHeader.biSizeImage=cx*cy*3;
pData=(BYTE*)new char[cx*cy*3];//根據AVI中BMP圖象的信息定義緩沖區
}
BOOL CAvi::AviRead(int mFrame)//將AVI文件的M幀數據讀入PData緩沖區
{
HRESULT hr;
hr= AVIStreamRead( pavi,
mFrame,
1,
pData,
cx*cy*3,
NULL,
NULL
);
if(hr==0)
return TRUE;
else
return FALSE;
}



  上述Cavi類實現部分所涉及到的API函數可以參考微軟提供的MSDN。Cavi類中的pData緩沖區存放AVI文件中的具體某一幀圖像數據,同時Cavi類的m_pBMI為BMP圖像文件信息結構,這時可以根據圖像的大小定義BMP圖像文件頭結構,關于BMP文件的存儲,由于篇幅的原因,我不在多講了,有興趣的讀者可以參見筆者的拙作"Visual C++6.0開發灰度位圖處理"(天極網軟件欄目2001.9.10發表),該文里面講述了如何存取BMP文件。以上程序在Windows2000、Visual C++6.0環境下順利編譯通過,運行正常。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲va中文字幕| 欧美日韩免费不卡视频一区二区三区 | 欧美日韩中文国产| 国产精品国产三级国产普通话蜜臀| 国产一区二区精品久久99| 久久综合成人精品亚洲另类欧美 | 亚洲最色的网站| 欧美在线三级电影| 午夜成人免费电影| 日韩一区二区精品葵司在线| 极品销魂美女一区二区三区| 欧美激情综合五月色丁香小说| 一本大道久久a久久精二百| 亚洲二区视频在线| 精品国产乱码久久| 99久久夜色精品国产网站| 婷婷久久综合九色综合绿巨人 | 99热这里都是精品| 天堂成人免费av电影一区| 久久久噜噜噜久久中文字幕色伊伊 | 一区二区三区四区乱视频| 91.com在线观看| caoporen国产精品视频| 水蜜桃久久夜色精品一区的特点| 日韩免费高清电影| 91久久免费观看| 国产一区二区三区美女| 亚洲午夜免费福利视频| 精品国产91亚洲一区二区三区婷婷| 色综合久久88色综合天天| 寂寞少妇一区二区三区| 亚洲国产欧美在线人成| 中文字幕精品一区二区精品绿巨人 | 欧美精品久久天天躁| 国产制服丝袜一区| 午夜精品福利视频网站| 亚洲婷婷在线视频| 国产欧美日本一区视频| 欧美精品一区二区三区在线播放| 91福利在线播放| www.欧美亚洲| 国产99精品国产| 六月婷婷色综合| 亚洲成a人片综合在线| 亚洲六月丁香色婷婷综合久久| 久久一区二区三区四区| 91精品国产综合久久久久久 | 亚洲国产aⅴ成人精品无吗| 中文字幕乱码久久午夜不卡| 精品国产1区2区3区| 欧美一卡二卡在线| 91精品国产91久久久久久一区二区 | 日韩欧美成人午夜| 欧美色图在线观看| 在线看不卡av| 91免费在线视频观看| 成人黄色a**站在线观看| 国产一区二区不卡老阿姨| 久久国产剧场电影| 麻豆精品一区二区三区| 六月丁香婷婷久久| 国产在线精品国自产拍免费| 青草av.久久免费一区| 蜜臀av一区二区三区| 精品在线免费观看| 国产一区亚洲一区| 国产宾馆实践打屁股91| 成人免费观看视频| 91啪九色porn原创视频在线观看| aa级大片欧美| 91日韩精品一区| 欧美日韩亚洲综合一区| 欧美久久久影院| 精品国产免费人成电影在线观看四季 | 亚洲成av人片观看| 老司机一区二区| 国内外成人在线| 国产盗摄女厕一区二区三区| 国产成人av电影免费在线观看| 成人av先锋影音| 色婷婷久久久综合中文字幕| 欧美午夜精品免费| 欧美videossexotv100| 久久久久久99久久久精品网站| 中文字幕精品一区二区三区精品| 亚洲免费高清视频在线| 午夜伦欧美伦电影理论片| 国产一区激情在线| 91在线精品秘密一区二区| 717成人午夜免费福利电影| 国产区在线观看成人精品| 亚洲一区二区偷拍精品| 久久国产精品第一页| www.欧美精品一二区| 日韩欧美的一区二区| 1024精品合集| 久久成人免费日本黄色| 99久久精品国产一区二区三区| 欧美亚洲国产一区在线观看网站| 精品国偷自产国产一区| 亚洲蜜臀av乱码久久精品| 久久成人久久爱| 在线观看欧美精品| 精品成人一区二区| 亚洲一区二区三区小说| 国产成人一区在线| 日韩视频一区二区在线观看| 亚洲精品国产高清久久伦理二区| 国产精品一二三四| 欧美日韩视频在线第一区| 中文字幕免费不卡在线| 国产麻豆9l精品三级站| 欧美久久久久久久久| 亚洲精品视频观看| 国产寡妇亲子伦一区二区| 欧美一三区三区四区免费在线看| 欧美国产精品一区二区| 精品一区二区三区免费毛片爱 | 成人午夜激情在线| 欧美r级电影在线观看| 亚洲激情六月丁香| av一区二区三区四区| 久久久av毛片精品| 久久国产精品99精品国产 | 亚洲另类一区二区| 99久久综合狠狠综合久久| 久久精品免费在线观看| 国产一区二区三区香蕉| 久久久三级国产网站| 韩国欧美国产一区| 欧美大片在线观看一区二区| 日韩av在线发布| 欧美一区二区在线免费播放| 亚洲成av人在线观看| 欧美男人的天堂一二区| 亚洲尤物视频在线| 欧美精选午夜久久久乱码6080| 一区二区三区加勒比av| 91香蕉视频在线| 亚洲女子a中天字幕| 91浏览器在线视频| 亚洲视频一二区| 91久久精品网| 亚洲综合一区二区精品导航| 一本久道久久综合中文字幕| 亚洲天堂中文字幕| 欧美日韩国产系列| 欧美aaaaa成人免费观看视频| 欧美一级高清大全免费观看| 六月婷婷色综合| 国产精品欧美综合在线| 色成年激情久久综合| 日本不卡视频在线观看| 久久综合九色综合97婷婷| 粉嫩一区二区三区性色av| 综合久久久久久久| 在线电影欧美成精品| 国产精品一卡二卡在线观看| 中文字幕视频一区二区三区久| 在线免费亚洲电影| 手机精品视频在线观看| 日本一区二区免费在线观看视频| 一本大道av伊人久久综合| 蜜臀99久久精品久久久久久软件| 久久久久久久久久久久久久久99| 国产成人一区在线| 午夜日韩在线电影| 欧美精品一区二区不卡 | 成人国产精品免费| 亚洲男女一区二区三区| 制服丝袜在线91| 国产成人精品一区二区三区网站观看| 亚洲免费观看在线视频| 欧美xxx久久| 91美女在线看| 国产一区二区按摩在线观看| 亚洲影视资源网| 国产清纯美女被跳蛋高潮一区二区久久w| caoporm超碰国产精品| 美国欧美日韩国产在线播放| 亚洲人成网站色在线观看| 欧美一区二区精品久久911| 成人性色生活片| 免费人成精品欧美精品| 亚洲人成精品久久久久| 久久久久久久久久久久久夜| 欧美精品tushy高清| 色噜噜狠狠一区二区三区果冻| 国产剧情一区二区| 免费不卡在线视频| 一区二区三区av电影| 国产精品美女www爽爽爽| 337p粉嫩大胆噜噜噜噜噜91av| 欧美四级电影在线观看| a美女胸又www黄视频久久| 日韩一区精品视频| 亚洲一二三区视频在线观看| √…a在线天堂一区| 中文字幕一区二区5566日韩| 国产女主播在线一区二区|