談?wù)勈褂肰FW在windows下編程控制攝像頭_第1頁(yè)
談?wù)勈褂肰FW在windows下編程控制攝像頭_第2頁(yè)
談?wù)勈褂肰FW在windows下編程控制攝像頭_第3頁(yè)
談?wù)勈褂肰FW在windows下編程控制攝像頭_第4頁(yè)
談?wù)勈褂肰FW在windows下編程控制攝像頭_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、談?wù)勈褂胿fw在windows下編程控制攝像頭這段時(shí)間閑來(lái)無(wú)事,看了看msdn的文檔,自己翻譯了一下。一是為了學(xué)習(xí),二是對(duì)空閑 時(shí)間的打發(fā)。所以也希望大家在拍磚的同時(shí),尊重我的勞動(dòng),如要轉(zhuǎn)貼請(qǐng)注明轉(zhuǎn)至 孫濤 2005-8-6microsoft® video for windows® (vfw)提供的xi數(shù)以讓應(yīng)用程序去處理視頻數(shù)據(jù)。vfw 在16位windows的時(shí)候就被引入了。它的許多重要功能已經(jīng)被directx取代了。要獲得更 多的信息,你可以參考directx的文檔。下面講介紹vfw的視頻捕獲:3.視頻捕獲你可以使用windows的avicap類輕松地完成視頻捕獲。a

2、vicap提供給應(yīng)用程序一個(gè)簡(jiǎn)單 的、基于消息的接口去訪問視頻設(shè)備和錄音設(shè)備,并且可以控制處理視頻流捕獲。3.1關(guān)于視頻捕獲avicap支持實(shí)是視頻流捕獲和實(shí)時(shí)單幀圖像捕獲。另外,avicap提供了對(duì)視頻源的控制(mci 媒體控制接口設(shè)備),因此使用者可以通過應(yīng)用程序控制一個(gè)視頻源開始和結(jié)束的位置,并 且可以加大對(duì)幀捕獲的控制。你使用avicap類可以完成如下的任務(wù):捕獲聲音和視頻,并將他們寫入到一個(gè)avi文件中。動(dòng)態(tài)連接和斷開視頻和咅頻的輸入設(shè)備。使用覆蓋或預(yù)覽的方法去顯示當(dāng)前的視頻信號(hào)。指定一個(gè)文件用于捕獲,并且把這個(gè)捕獲文件的內(nèi)容拷貝給另一個(gè)文件。設(shè)定捕獲圖像速度(好多幀)。顯示對(duì)話框用

3、于控制視頻源和格式。創(chuàng)建、保存、加載調(diào)色板。捕獲并把圖像作為一個(gè)dib位圖保存。3丄1視頻捕獲:最簡(jiǎn)單的方法視頻捕獲將數(shù)字化一個(gè)視頻流和音頻數(shù)據(jù),并且將他們保存在硬盤和其他存儲(chǔ)設(shè)備上。這里將描述如何在應(yīng)用程序屮簡(jiǎn)單地應(yīng)用視頻捕獲,它通過三句代碼實(shí)現(xiàn)。它還介紹了如何 通過發(fā)送消息給視頻捕獲窗口來(lái)結(jié)束或中斷一個(gè)視頻會(huì)話。avicap捕獲窗口可以把捕獲的音視頻信息寫入一個(gè)avi文件中。你的應(yīng)用程序可以自由地 處理這個(gè)avi文件、管理緩存區(qū)的咅視頻數(shù)據(jù)、還可以在底層訪問咅視頻設(shè)備的驅(qū)動(dòng)器。avicap為應(yīng)用程序提供了一個(gè)靈活的接口。你可以使用下而的代碼,在你的應(yīng)用程序中加 入視頻捕獲:hwndc =

4、capcreatecapturewindow (nmy own capture window",ws_child | ws_visible ,0,0,160,120, hwndparent, nid);sendmessage (hwndc, wm_cap_driver_conneci; 0 /* wlndex */,0l);sendmessage (hwndc, wm_cap_sequence, 0, 0l);宏接口同樣有用,你可以選擇是使用宏接口還是sendmessage函數(shù)來(lái)實(shí)現(xiàn)上面的功能,不 過宏接口可以讓你的代碼更加容易理解。下面就使用了宏接口。hwndc = capcrea

5、tecapturewindow (n my own capture window ",ws_child | ws_visible ,0,0,160,120, hwndparent, nid);capdriverconnect (hwndc, 0);/ 宏接口/宏接口capcapturesequenee ( hwndc);你的應(yīng)用程序創(chuàng)建avicap捕獲窗口,并和視頻設(shè)備建立連接后。你創(chuàng)建的這個(gè)捕獲窗口就 準(zhǔn)備捕獲數(shù)據(jù)了。這時(shí),你"j以通過發(fā)送wm_cap_sequence消息(或capcapturesequence 宏)開始對(duì)數(shù)據(jù)進(jìn)行捕獲。wm_cap_sequence將使

6、用默認(rèn)設(shè)置,開始對(duì)視頻和音頻進(jìn)行捕獲,并把數(shù)據(jù)放在一個(gè)capture.avi的文件中,捕獲動(dòng)作將一直持續(xù),除非有下面的事件發(fā)生:i用戶按了 esc鍵或者鼠標(biāo)的按鈕。i你的應(yīng)用程序停止或者退出了捕獲操作。i磁盤寫滿了。在應(yīng)用程序中,你可以通過發(fā)送wm_cap_stop命令(或capcapturestop)給捕獲窗口,讓它 停止向文件寫數(shù)據(jù)。你還可以通過發(fā)送wm_cap_abort命令(或capcaptureabort)給捕獲窗口,讓它屮斷捕獲操作。3.1.2捕獲基本設(shè)置通過對(duì)定義在captureparms結(jié)構(gòu)中的捕獲參數(shù)進(jìn)行修改,你可以完成:i改變捕獲的幀頻律(幀/秒);i指定用鍵盤或鼠標(biāo)去結(jié)束

7、一個(gè)捕獲會(huì)話;i為一個(gè)捕獲會(huì)話指定時(shí)間周期;捕獲的幀頻率捕獲的幀頻率表示在一個(gè)捕獲會(huì)話中,每秒要捕獲多少幀。你通過 wm_cap_get_sequence_setup 消息(capcapturegetsetup 宏)可以得到當(dāng)前捕獲的幀頻 率。當(dāng)前的幀頻率被保存在captureparms結(jié)構(gòu)的dwrequestmicrosecperframe成員中。 你可以對(duì)該值進(jìn)行修改,從而去改變幀頻率。該值為捕獲一幀要用的時(shí)間(單位是微秒 1/1000000 秒),修改后,你可以發(fā)送 wm_cap_set_sequence_setup 消息(或 capcapturesetsetup宏)給你 的捕獲 窗體,

8、來(lái)刷新captureparms結(jié) 構(gòu)。 dwrequestmicrosecpe汗rame 默認(rèn)值是 66667 微秒,表示每秒 15 幀。(1000000/15=66667)退出數(shù)據(jù)捕獲你可以讓用戶按這兒種方法退出一個(gè)捕獲會(huì)話,按鍵盤上的一個(gè)鍵或兒個(gè)組合鍵、或者按鼠 標(biāo)的左鍵或者是右鍵。如果用戶退出一個(gè)實(shí)時(shí)的捕獲會(huì)話,那么捕獲文件中的內(nèi)容將被系統(tǒng) 丟棄掉。如果用戶退出一個(gè)步幀(step-frame)捕獲的會(huì)話,捕獲文件將保存到退出吋刻前的所 有數(shù)據(jù)。你可以通過發(fā) wm_cap_get_sequence_setup 消息(或 capcapturegetsetup 宏)給捕獲 窗口,來(lái)獲得捕獲退出

9、的設(shè)置信息。當(dāng)前的退出按鈕設(shè)置保存在captureparms結(jié)構(gòu)的 vkeyabort成員中,為前的退出鼠標(biāo)設(shè)置保存在fabortleftmouse和fabortrightmouse成員 屮。你可以改變這兒個(gè)成員,實(shí)現(xiàn)對(duì)當(dāng)前值的修改。當(dāng)你修改完成后,你可以發(fā)送 wm_cap_set_sequence_setup 消息(或 capcapturesetsetup 宏)給你的捕獲窗體,來(lái)刷新 captureparms 結(jié)構(gòu)。vkeyabort默認(rèn)值是vk_escape。在重新指定其他按鍵前,你必須調(diào)用registerhotkey函數(shù)。 fabortleftmouse 和 fabortrightmou

10、se 是 true。時(shí)間限定 通過使用captureparms結(jié)構(gòu)的flimitenabled和wtimelimit成員,你可以去限定一個(gè)捕獲 操作的吋i'可周期。flimitenabled表示是否要對(duì)捕獲操作限定吋間,wtimelimit用于指定限 定吋間的最大值。你發(fā) wm_cap_get_sequence_setup 消息(capcapturegetsetup 宏)給捕獲窗口,就可以 得到flimitenabled和wtimelimit的值。flimitenabled為true表示要指定時(shí)間周期。 wtimelimit單位為秒。修改完成后,你可以發(fā)送wm_cap_set_sequ

11、ence_setup消息(或 capcapturesetsetup宏)給你的捕獲窗體,來(lái)刷新captureparms結(jié)構(gòu)。flimitenabled 默認(rèn)值為 false.3.1.3捕獲窗口捕獲窗體類似于一個(gè)標(biāo)準(zhǔn)控件(不如按鈕、列表框),它一般使用ws_child和ws_visible 窗口類型。.一創(chuàng)建一個(gè)avicap捕獲窗口使用capcreatecapturewindow函數(shù)可以創(chuàng)建一個(gè)avicap的捕獲窗口。這個(gè)函數(shù)返回 一個(gè)窗口句柄,這個(gè)句柄就是捕獲窗口的句柄,后面其他操作就是通過發(fā)送消息給該句柄來(lái) 實(shí)現(xiàn)。你可以在一個(gè)程序中創(chuàng)建多個(gè)捕獲窗口,并且每個(gè)窗口連接到不同的捕獲設(shè)備上。建立捕獲

12、窗口到捕獲設(shè)備的連接你可以動(dòng)態(tài)地連接或斷開捕獲窗口與設(shè)備間的鏈接。通過使用wm_cap_drivr_connect消 息(或capdriverconnect宏),可以實(shí)現(xiàn)捕獲窗體與設(shè)備驅(qū)動(dòng)間的連接。當(dāng)捕獲窗體和捕獲 設(shè)備驅(qū)動(dòng)連接后,你就可以發(fā)送針對(duì)設(shè)備的消息給該窗體了。如果你的系統(tǒng)安裝了多個(gè)捕獲設(shè)備,你可以通過在發(fā)送wm_cap_driver_connect消息時(shí), 設(shè)置wprarm參數(shù)(integer)o來(lái)指定捕獲窗口與那個(gè)具體的視頻捕獲設(shè)備相連接。wprarm參數(shù)是一個(gè)整數(shù),它表示一個(gè)系統(tǒng)已經(jīng)安裝的視頻捕獲設(shè)備列表的索引(注冊(cè)表中 或這system.ini drivers中的信息)。該列表

13、的索引從0開始。通過capgetdriverdescription函數(shù)可以獲得安裝的捕獲驅(qū)動(dòng)程序的名稱和版本。你的 應(yīng)用程序可以使用這個(gè)函數(shù)列舉除安裝的所有捕獲設(shè)備,讓用戶可以選擇其中一個(gè)去與捕獲 窗口相聯(lián)。通過發(fā)送wm_cap_driver_get_name消息(capdrivergetname宏),可以獲得與指定窗體 連接的捕獲設(shè)備的名稱。通過發(fā)送wm_cap_driver_get_version消息(capdrivergetversion 宏),可以獲得與指定窗體連接的捕獲設(shè)備的版本。通過發(fā)送 wm_cap_driver_disconnect 消息(capdrivergetdisconn

14、ect 宏),對(duì)以斷開連接。 當(dāng)捕獲窗體銷毀后,任何連接的視頻捕獲設(shè)備都將自動(dòng)斷開。父子窗體交付一些系統(tǒng)級(jí)的消息,比如 wm_palettechanged、wm_querynewpalette,只被發(fā) 送到頂層(top-level)和overlapped窗口。如果一個(gè)扌甫獲窗體是一個(gè)資窗體,那它的父窗口應(yīng) 該來(lái)轉(zhuǎn)寄這些消息。同樣地,假如父窗口尺寸改變了,它可能需要發(fā)送一個(gè)通知消息給捕獲窗口。相反, 如果捕獲視頻尺寸變化了,捕獲窗口可能需要發(fā)一個(gè)通知消息給父窗口。最簡(jiǎn)單的管理方法 是讓捕獲窗口的尺寸等于捕獲視頻流的尺寸,隨時(shí)把改變的尺寸告訴給父窗口。捕獲窗體狀態(tài)通過發(fā)送wm_cap_get_st

15、atus消息(capgetstatus宏),可以獲得當(dāng)前捕獲窗口的狀態(tài)。 這個(gè)消息得到一個(gè)capstatus結(jié)構(gòu)體的拷貝,狀態(tài)信息就在這個(gè)結(jié)構(gòu)體的成員中。capstatus結(jié)構(gòu)體包含了圖形尺寸大小、滾動(dòng)位置(scroll position)、是否覆蓋(overlay)或者 預(yù)覽(preview)等信息。因?yàn)樵赾apstatus屮的信息是動(dòng)態(tài)的,你的應(yīng)用程序應(yīng)該隨時(shí)去 刷新這個(gè)結(jié)構(gòu)體中的內(nèi)容。改變捕獲窗口的尺寸對(duì)實(shí)際的視頻流的尺寸沒有影響。3.1.4捕獲和音頻驅(qū)動(dòng)器視頻捕獲可以做這兒個(gè)方而的工作:訪問視頻源、顯示選項(xiàng)、格式和壓縮選項(xiàng)。音頻捕獲 包括指定音頻格式和選擇壓縮方式。捕獲驅(qū)動(dòng)性能通過發(fā)送

16、wm_cap_driver_get_caps消息(capdrivergetcaps宏),可以獲得當(dāng)前連接的捕 獲設(shè)備的性能。發(fā)送該消息后,會(huì)返回一個(gè)capdrivercaps結(jié)構(gòu)的對(duì)象。設(shè)備的性能信息, 就在這個(gè)對(duì)象中。視頻對(duì)話框(video dialog boxes)每個(gè)捕獲設(shè)備的驅(qū)動(dòng)程序都可以為控制視頻信號(hào)和捕獲處理和視頻壓縮提供4個(gè)對(duì)話框。這 些對(duì)話框中的內(nèi)容都是視頻捕獲驅(qū)動(dòng)程序定義的。視頻源對(duì)話框(video source dialog box)用于選擇視頻輸入通道和視頻圖像的動(dòng)態(tài)參數(shù)。它可 以列舉出當(dāng)前連接視頻設(shè)備的信號(hào)類型(svhs和復(fù)合類型),并且可以通過該對(duì)話框去修改 圖像的色

17、調(diào)、亮度、飽和度。你可以通過使用wm_cap_dlg_videosource消息(或 capdigvideosource宏)來(lái)顯示和刷新這個(gè)窗口。視頻格式對(duì)話框(video format dialog box)用于選擇數(shù)字視頻的框架人小和視頻圖像的色深, 以及捕獲視頻圖像的壓縮格式。你可以通過使用wm_cap_dlg_videoformat消息(或 capdigvideoformat宏)來(lái)顯示和刷新這個(gè)窗口。視頻顯示對(duì)話框(video display dialog box)用于控制視頻外觀。在該對(duì)話框上進(jìn)行了修改只是 對(duì)視頻顯示起作用,對(duì)于實(shí)際的視頻數(shù)據(jù)是不會(huì)造成改變的。比如,可以改變顯示的顏

18、色, 飽和度等等,你可以通過使用wm_cap_dlg_videodisplay消息(或capdigvideodisplay 宏)來(lái)顯示和刷新這個(gè)窗口。視頻壓縮對(duì)話框(video compression dialog box)用于設(shè)置視頻壓縮的格式。通過使用wm_cap_dlg_videocompression 消息(或 capdigvideocompression 宏)來(lái)顯示和刷新這個(gè) 窗口。預(yù)覽和覆蓋模式(preview and overlay )一般,一個(gè)捕獲驅(qū)動(dòng)提供兩種方式來(lái)觀看輸入的視頻流:預(yù)覽模式和覆蓋模式。如果捕獲驅(qū) 動(dòng)可以提供上面兩種模式,那么用戶就可以選擇其中的模式來(lái)使用。預(yù)覽

19、模式從捕獲設(shè)備硬件傳輸數(shù)據(jù)幀到系統(tǒng)的內(nèi)存中,并且在捕獲窗口中使用gdi函數(shù)來(lái)顯 示這些數(shù)據(jù)幀。當(dāng)捕獲窗口的父窗體失去焦點(diǎn)的時(shí)候,在應(yīng)用程序的視頻預(yù)覽的數(shù)據(jù)將變慢, 如果父窗體獲的焦點(diǎn)后,將對(duì)預(yù)覽顯示進(jìn)行加速。因?yàn)轭A(yù)覽處理的這種處理方式將大大提高 整個(gè)系統(tǒng)的效率。這里用3個(gè)消息用于控制預(yù)覽操作。iwm_cap_set_preview消息(cappreview宏)可以打開或者關(guān)閉預(yù)覽模式。iwm_cap_set_previewrate消息(cappreviewrate宏河以設(shè)置預(yù)覽模式下圖像的幀速度。iwm_cap_set_scale消息(cappreviewscale宏)打開或者關(guān)閉預(yù)覽視頻的縮

20、放比例。當(dāng)預(yù)覽和縮放比例屬性都打開后,那么視頻將被縮放到和捕獲窗口尺寸一樣大。打開預(yù)覽模 式后,系統(tǒng)將白動(dòng)關(guān)閉覆蓋模式。覆蓋模式,將不占用cpu的處理資源,直接在顯示器上顯示視頻內(nèi)容。所用的處理是有捕 獲設(shè)備硬件來(lái)完成。發(fā)送wm_cap_set_overlay消息(或capoverlay宏)給捕獲窗口,可以 打開覆蓋模式。打開覆蓋模式后,將自動(dòng)關(guān)閉預(yù)覽格式。無(wú)論是預(yù)覽模式還是覆蓋模式,都可以通過發(fā)送wm_cap_setscroll消息(capsetscroollpos 宏),可以設(shè)置圖像的在整個(gè)視頻幀的滾動(dòng)位置(scroll position)。視頻格式通過發(fā)送 wm_cap_get_vide

21、oformat 消息(capgetvideoformat 宏)給視頻捕獲窗口 可以得到一個(gè)結(jié)構(gòu),在這個(gè)結(jié)構(gòu)體中就包含了視頻的格式、大小。通過發(fā)送 wm_cap_set_videoformat 消息(capsetvideoformat 宏)給視頻捕獲窗 i i 可 以對(duì)視頻格式進(jìn)行修改設(shè)置。you can set the format of captured video data by sending the wm_cap_set_videoformat message (or the capsetvideoformat macro) to a capture window視頻捕獲設(shè)置captu

22、reparms數(shù)據(jù)結(jié)構(gòu)包括了視頻流的控制參數(shù)。它允許完成如下的任務(wù):i指定幀速度(frame rate)。i指定為視頻分配的緩存大小。i關(guān)閉或者打開音頻捕獲。i設(shè)定捕獲的時(shí)間間隔。i指定捕獲設(shè)備(mci設(shè)備、vcr或者彫碟)。i指定鍵盤或鼠標(biāo)去控制結(jié)束捕獲。i指定適用的視頻類型通過發(fā)送 wm_cap_get_seqence_setup 消息(capcapturegetsetup)捕獲窗體,可以獲得一 個(gè)captureparms數(shù)據(jù)結(jié)構(gòu)的對(duì)象,當(dāng)前視頻捕獲的設(shè)置信息就在這里面。你對(duì)以改寫captureparms對(duì)彖的成員,來(lái)實(shí)現(xiàn)對(duì)視頻捕獲信息的修改。修改后,發(fā)送 wm_cap_set_seque

23、nce_setup 消 息(capcapturesetsetup)給捕獲 窗體,并 把這個(gè) captureparms對(duì)象發(fā)給捕獲窗體,就可以實(shí)現(xiàn)修改。音頻格式 通過發(fā)送 wm_cap_get_audioformat 消息(capgetaudioformat 和 capgetaudioformatsize 宏)給捕獲窗體,你就可以獲得當(dāng)前的咅頻數(shù)據(jù)格式或咅頻數(shù)據(jù)結(jié)構(gòu)的大小。默認(rèn)咅頻捕獲 格式是 mono, 8-bit, 11 khz pcmo當(dāng)你使用wm_cap_get_aud10format消息得到音頻格式后,通常會(huì)使用waveformatex 這個(gè)數(shù)據(jù)結(jié)構(gòu)。通過發(fā)送wm_cap_set_au

24、dioformat消息(capsetaudioformat宏)給捕獲窗體,你可以設(shè)置 音頻數(shù)據(jù)捕獲格式。當(dāng)設(shè)置這個(gè)音頻格式時(shí),你可以通過一個(gè)指針指向一個(gè) waveformat ,waveformatex,或者 pcmwaveformat 數(shù)據(jù)結(jié)構(gòu)。3.1.5捕獲文件和緩存區(qū)捕獲文件名avicap默認(rèn),把音視頻數(shù)據(jù)從捕獲窗口保存到當(dāng)前驅(qū)動(dòng)得根目錄下,文件名稱為capture.avi o 發(fā)送 wm_cap_file_set_capture_file 消息(capfilesetcapturefile)給捕獲窗體,可以改變 保存的文件名。這個(gè)消息指定文件名;它不實(shí)際創(chuàng)建文件,分配空問,也不能打開文件

25、。通 過發(fā)送 wm_cap_file_get_capture_file 消息(capfilefgetcapturefile 宏)給捕獲窗口,就可 以得到當(dāng)前文件名。保存捕獲數(shù)據(jù)到一個(gè)新文件 如果用戶想保存捕獲數(shù)據(jù),把數(shù)據(jù)存到另外一個(gè)文件中??梢允褂脀m_cap_file_saveas 消息(capfilesaveas宏)。這個(gè)消息不能改變捕獲文件的名稱和內(nèi)容。你必須去指定新建的文 件名,因?yàn)椴东@文件將保留原來(lái)的文件名稱。為捕獲文件預(yù)分配磁盤空問在捕獲操作前,先在磁盤上為捕獲文件建一個(gè)指定大小的文件。預(yù)分配空間將減少數(shù)據(jù)保存 時(shí)的處理時(shí)間??梢酝ㄟ^wm_cap_file_allocate消息(c

26、apfilealloc宏)來(lái)預(yù)分配一個(gè)捕獲文 件。你要預(yù)分配足夠大的磁盤空間去保存預(yù)計(jì)最大的捕獲文件。預(yù)分配磁盤空間沒有限定捕獲文 件的大小。如果捕獲的數(shù)據(jù)大于了分配的空間,文件尺寸將自動(dòng)變大。對(duì)一個(gè)捕獲文件進(jìn)行 重寫數(shù)據(jù),將對(duì)文件的已經(jīng)分配的磁盤空間進(jìn)行重寫。通過對(duì)捕獲文件進(jìn)行磁盤碎片整理可以提高捕獲性能。要對(duì)文件進(jìn)行碎片整理,可以使用一 個(gè)碎片整理工具來(lái)完成,比如disk defragmentero通過使用沒圧縮的磁盤來(lái)保存數(shù)據(jù),同樣可以提高性能。因?yàn)樵诓东@期間壓縮數(shù)據(jù)將對(duì)磁盤 的吞吐量進(jìn)行限制。索引大小在每個(gè)avi文件中都會(huì)使用一個(gè)指定大小的索引去查找音視頻數(shù)據(jù)塊。在一個(gè)索引的 入口定位

27、了一個(gè)視頻幀或者一個(gè)波形聲音的緩存器。所以,這個(gè)索引的大小簡(jiǎn)接地限定了一 個(gè)捕獲文件所能保存的幀的數(shù)量上限。通過發(fā)送 wm_cap_get_sequence_setup 消息(capcapturegetsetup 宏)給捕獲窗口就可以得 到當(dāng)前的索引大小。這個(gè)索引大小就保存在captureparms數(shù)據(jù)結(jié)構(gòu)對(duì)象的一個(gè)成員中(dwindexsize ) 0你可以在dwindexsize中指定一個(gè)新的索引大小,并通過發(fā)送消息 wm_cap_set_sequence_setup(capcapturesetsetup 宏)給捕獲窗口完成信息設(shè)置。索引默認(rèn) 大小34,952 (允許32k幀和想匹配的聲音

28、緩存器).音視頻塊的間隔尺'j (granularity)數(shù)據(jù)塊的間隔尺寸是一個(gè)avi文件的邏輯塊人小。它用于寫和讀音視頻數(shù)據(jù)塊。當(dāng)向磁盤寫 咅視頻數(shù)據(jù)吋,avicap將在每個(gè)數(shù)據(jù)塊中加入一個(gè)必須的填充塊(filler chunks (riff "junk" chunks)去填充滿該數(shù)據(jù)塊。你可以使用wm_cap_get_sequenc_setup消息(capcapturegetsetup)去獲得當(dāng)前的塊間 隔尺寸(granularity)o captureparms的wchunkgranularity成員保存的是當(dāng)前的塊間隔尺 寸信息。通過對(duì)該成員的改寫,并發(fā)送

29、wm_cap_get_sequenc_setup消息 (capcapturesetsetup),可以對(duì)其進(jìn)行修改。你設(shè)置該參數(shù)為零的話,那么塊間隔尺寸的值 就為磁盤的扇區(qū)大小。視頻緩存區(qū)這個(gè)緩存區(qū)將視頻數(shù)據(jù)放在內(nèi)存的堆中。緩存區(qū)的大小可以改變,并且它的大小是由captureparms的wnumvideorequested成員和系統(tǒng)可以的內(nèi)存大小來(lái)決定。你可以使用wm_cap_get_sequenc_setup消息(capcapturegetsetup)去獲得當(dāng)前的視頻 緩存區(qū)的大小。captureparms的wnumvideorequested成員保存的是當(dāng)前的緩存區(qū)尺寸。 通過對(duì)該成員的改寫

30、,并發(fā)送 wm_cap_get_sequenc_setup 消息(capcapturesetsetup), 可以對(duì)其進(jìn)行修改。音頻緩存區(qū)你對(duì)以使用卜面三種方法來(lái)控制捕獲的音頻數(shù)據(jù):在捕獲中包含音頻或者不包含音頻按要求指定音頻緩存區(qū)的大小request that audio buffers be a specific size.你可以使用wm_cap_get_sequenc_setup消息(capcapturegetsetup)去獲得當(dāng)前的咅頻 緩存區(qū)的設(shè)置。captureparms的fcaptureaudio指定在這次捕獲操作中是否包括對(duì)聲音的 捕獲。wnumaudiorequested保存肖

31、前耍求的音頻緩存區(qū)的大小。dwaudiobuffersize保存當(dāng) 前的音頻緩存區(qū)的大小。通過對(duì)該成員的改寫,并發(fā)送 wm_cap_get_sequenc_setup 消息(capcapturesetsetup), 可以對(duì)其進(jìn)行修改。fcaptureaudio 默認(rèn)值是 true。the default buffer size (the value of) can contain 0.5 seconds of audio data or 10k, whichever is greater.3.1.6捕獲變化除了對(duì)基于持續(xù)吋間間隔的流捕獲外,avicap還支持如下的捕獲:i手控制幀捕獲istil

32、l-image 捕獲i不使用磁盤存儲(chǔ)的捕獲i從一個(gè) mci 設(shè)備的流捕獲(real-time and step-frame)手動(dòng)幀捕獲如果你向指定捕獲視頻流中個(gè)別幀,你可以通過wm_cap_single_frame_open消息、 wm_cap_single_frame 消息、wm_cap_single_frmae_close 消息來(lái)控制幀序列(capcapturesingleframeopen、/capcapturesingleframe、capcapturesigleframeclose)o典型應(yīng)用是,這些消息用于向捕獲文件添加單獨(dú)的幀來(lái)創(chuàng)建一個(gè)動(dòng)畫, wm cap single fram

33、e open 為手動(dòng)捕獲操作打開一個(gè)文件,wm cap single frame 用于捕獲一個(gè)單獨(dú)的幀放在文件屮。wm_cap_single_frmae_close用于關(guān)閉這個(gè)捕獲文件。注:該操作支持音視頻同時(shí)捕獲。still-image 捕獲如果要捕獲一個(gè)單獨(dú)的幀作為一個(gè)靜態(tài)圖像,你可以使用wm_cap_grab_frame_nostop 或者 wm_cap_grab_frame 消息(capgrabframenostop 或capgrabframe宏)在一個(gè)幀緩存區(qū)中捕獲一個(gè)圖像。你可以通過使用下血的消息來(lái)抓獲 當(dāng)前顯示的圖形 wm_cap_grab_frame ,否則,使用 wm_cap

34、_grab_frame_nostopo一旦開始捕獲,你可以拷貝圖像給其他應(yīng)用程序。你可以從幀緩存區(qū)拷貝一個(gè)圖像到剪貼板 (使用wm_cap_edit_copy消息或capeditcopy宏)。你還可以使用如下的消息,將緩存區(qū) 的一張圖像拷貝到一個(gè)dib位圖中(wm_cap_file_savedib消息或capfilesavedib宏)。不使用磁盤存儲(chǔ)的捕獲使用 wm_cap_seuence_nofile 消息(capcapturesequencenofile 宏),可以不向磁盤文件寫 入數(shù)據(jù)。該消息僅在配合回調(diào)函數(shù)時(shí)有用,它允許你的應(yīng)用程序直接使用音視頻數(shù)據(jù)。例如, 在視頻會(huì)議中,應(yīng)用程序使用

35、該消息區(qū)獲得視頻流?;卣{(diào)函數(shù)將傳輸捕獲的圖像傳送給遠(yuǎn)程 的計(jì)算機(jī)。從mci設(shè)備進(jìn)行流捕獲mci設(shè)備加強(qiáng)了實(shí)吋捕獲和步進(jìn)幀(step-frame)捕獲的處理操作。你可以指定一個(gè)mci設(shè)備, 比如一張影碟或者一盤錄像帶(vcr)來(lái)充當(dāng)視頻源。通過發(fā)送消息并指定你要選定的mci 設(shè)備的名稱。消息:wm_cap_set_mci_device (capsetmcidevicename宏)。獲得當(dāng)前使用的 設(shè)備可以使用 wm_cap_get_mci_device (capgetmcidevicename)消息。在實(shí)吋捕獲中, the capture window synchronizes the capt

36、ure operation and compensates for delays associated with positioning the mci video source and initializing the resources (such as capture buffers) required for capturing data. the capture window expects a valid mci video device to be installed in the system for capturing data this way.控制mci設(shè)備的規(guī)格信息保存

37、在captrueparms數(shù)據(jù)結(jié)構(gòu)體的數(shù)據(jù)成員中。mci兼容的視 頻源包括錄像機(jī)(vcr)和光碟。如果fmcicontrol數(shù)據(jù)成員為true,捕獲窗口采用mci操作。 捕獲窗口使用dwmcistarttime和dwmcistoptime來(lái)獲得開始和結(jié)束位置(毫秒)。如果 fmcicontrol數(shù)據(jù)成員的值為false, dwmcistarttime和dwmcistoptime的值將被忽略不見。你可以使用media player去快速檢查mci設(shè)備是否正確地連接到了你的系統(tǒng)上,如果在視 頻顯示顯示了圖像,就表示這個(gè)視頻源正確連接到了捕獲硬件上。在步進(jìn)幀(step-frame)捕獲情況下,the

38、 capture window synchronizes the capture operation and compensates for the delays associated with positioning the mci video source and initializing the resources required for capturing data in addition, the capture window ensures that no frames are dropped; it steps through the video frames individu

39、ally, ensuring that the frame is captured and stored before capturing the next frame in the video stream步進(jìn)幀(step-frame)捕獲控制的規(guī)格信息保存在captrueparms數(shù)據(jù)結(jié)構(gòu)體的數(shù)據(jù)成員屮。 步進(jìn)幀(step-frame)捕獲除了使用視頻捕獲要用的數(shù)據(jù)成員外,還使用其他的數(shù)據(jù)成員: fstepmcidevice, fstepcaptureat2x, 和 wstepcaptureaverageframes。如果數(shù)據(jù)成員 fstepmcidevice的值為true,捕獲窗口采用步

40、進(jìn)幀(step-frameli獲。捕獲窗口將使用這兩 個(gè)參數(shù)來(lái)指定捕獲的開始和結(jié)束位置(dwmcistarttime和dwmcistoptime毫秒)。捕獲窗 口使用fstepcaptureat2x來(lái)決定捕獲硬件捕獲的視頻幀使用兩個(gè)普通的分辨率。使用 wstepcaptureaverageframes來(lái)指定捕獲時(shí)每幀圖像使用的時(shí)間大小。如杲在一個(gè)步進(jìn)幀(step-frame脯獲中,指定fstepcaptureat2x為true,那么捕獲碩件 將使用兩個(gè)指定的解析度來(lái)進(jìn)行捕獲(高和寬的解析度都是雙倍的)。它使用軟件,在指定的 解析度的基礎(chǔ)上改寫圖像的象素,讓其成為更高解析度的圖像。如杲硬件不支持

41、基于硬件的 批量處理,你也可以使用該選項(xiàng)。并且捕獲為rgb格式。注意:如果你的硬件步支持基丁硬件的批量處理(hardware-based decimation), it can capture samples at a higher rate than specified and use these additional samples to obtain color definitions that are more consistent with the original image. the additional samples are discarded after they are

42、used, and the hardware passes samples to the capture driver at the specified rate。如果指定了步進(jìn)幀捕獲,wstepcaptureaverageframes成員用丁指定捕獲一幀圖像要使用的 時(shí)間,它是一個(gè)采樣的標(biāo)準(zhǔn)時(shí)間。以后捕獲圖像捕獲平均時(shí)間都會(huì)基于這個(gè)時(shí)間。采用這種 機(jī)制,降會(huì)減少在一個(gè)圖像幀的隨機(jī)數(shù)字化噪音。這個(gè)數(shù)據(jù)成員的標(biāo)準(zhǔn)值是5。關(guān)于mci的信息可以查看msdn上的信息。3.1.7高級(jí)捕獲選項(xiàng)這節(jié)描述在一個(gè)捕獲操作中,你還可以進(jìn)行的其他選擇。i測(cè)量視頻質(zhì)量i用戶初始化捕獲i和調(diào)色板一起工作i在avi文件中

43、的嵌入信息塊用戶數(shù)據(jù)消息(messages)測(cè)量視頻質(zhì)量測(cè)量視頻質(zhì)量的一個(gè)方法是去限定在一個(gè)捕獲操作期間丟掉的捕獲圖像幀的數(shù)字。當(dāng)流捕獲 完成后,質(zhì)量二丟掉的幀/所有的幀。如果這個(gè)數(shù)(百分?jǐn)?shù))大于wpercentdropforerror的 值,avicap將發(fā)一個(gè)錯(cuò)誤信息給錯(cuò)誤回調(diào)函數(shù)。wpercentdropforerror是captureparms 數(shù)據(jù)結(jié)構(gòu)體的一個(gè)數(shù)據(jù)成員。通過 wm_cap_get_sequence_setup 消息(capcapturegetsetup 宏)可以得到當(dāng)前設(shè)定的 丟掉幀的限定值。同樣對(duì)wpercentdropforerror進(jìn)行修改,再把修改后的數(shù)據(jù)結(jié)構(gòu)

44、體發(fā)送給 捕獲窗體就可以完成對(duì)限定值的修改。wm_cap_get_sequence_setup消息 (capcapturesetsetup) , wpercentdropforerrorm 默認(rèn)值 10 (10%)。用戶初始化捕獲通過 wm_cap_get_sequence_setup 消息(capcapturegetsetup 宏)可以得到當(dāng)前用戶 初始化捕獲的狀態(tài)值。該值存放在fmakeuserhitoktocapture屮。在開始一個(gè)捕獲會(huì)話前, 設(shè)置該值為true,可以為用戶提供精確的控制。系統(tǒng)為所有的音視頻分配好數(shù)據(jù)緩存區(qū)后, avicap會(huì)顯示一個(gè)對(duì)話框。它讓用戶清除因?yàn)檐浖跏蓟?/p>

45、導(dǎo)致的捕獲延遲。如果你的應(yīng)用 程序?yàn)橐曨l數(shù)據(jù)分配的數(shù)據(jù)緩存區(qū)很小,那么這個(gè)對(duì)話框可能就沒的必要了。該值的默認(rèn)值 是 false o和調(diào)色板一起工作最初,如果視頻捕獲格式需要一個(gè)調(diào)色板,那么捕獲窗口將使用捕獲驅(qū)動(dòng)提供的調(diào)色 板來(lái)代替。這個(gè)調(diào)色板可能由灰度值,或者可選的彩色值組成。使用wm_cap_pal_paste 或考 wm_cap_pal_open 消息(cappalettepaste 或 cappaletteopen) nj以獲得一個(gè)現(xiàn)存的調(diào) 色板去替換默認(rèn)的調(diào)色板。你還可以創(chuàng)建一個(gè)自定義的調(diào)色板去替換默認(rèn)的調(diào)色板,你要使 用 wm_cap_pal_autocreate 或者 wm_cap

46、_pal_manualcreate 消息(cappaletteauto 或cappalettemanual )。當(dāng)你替換了調(diào)色板后,捕獲窗體和驅(qū)動(dòng)程序?qū)⑹褂锰鎿Q后的調(diào)色板, 直到你創(chuàng)建或打開其他的調(diào)色板為止。wm_cap_pal_autocreate 或者 wm_cap_pal_manualcreate 消息將創(chuàng)建一個(gè)基于當(dāng)前 視頻輸入最優(yōu)化的調(diào)色板。這個(gè)自定義的調(diào)色板將為視頻提供一個(gè)最好的顏色逼真度,因?yàn)?這個(gè)調(diào)色板的顏色是基于這個(gè)視頻的。捕獲窗口創(chuàng)建一個(gè)采樣顏色的3維柱狀圖。它會(huì)減小 真實(shí)顏色和漸近色間的值。在發(fā)送wm_cap_pal_autocreate消息吋,你必須指定avicap采樣

47、的幀數(shù)以及調(diào)色板的顏 色尺寸。在指定幀數(shù)時(shí),要保證幀數(shù)足夠大以保證所有的視頻顏色可以被采樣收集到。使用wm_cap_pal_manualcreate消息可以對(duì)當(dāng)前幀進(jìn)行采樣。通過該消息,進(jìn)行兒次 手動(dòng)選擇幀釆樣操作,你可以創(chuàng)建白己的調(diào)色板,它包含了你想要的顏色信息。一個(gè)調(diào)色板可以包含256種顏色。如果你要合并調(diào)色板,或者在視頻隊(duì)列中同時(shí)在顯示其他 視頻或圖像。你可以去使用一個(gè)小的顏色集合,這樣不同圖像或視頻的顏色就可以共存了。使用 wm_cap_pal_save消息(cappalettesave ),可以保促一個(gè)新的調(diào)色板。通過 wm_cap_pal_open消息還可以得到當(dāng)前的調(diào)色板。你可以

48、在調(diào)色板處理前保存一個(gè)調(diào)色板, 或者為其他應(yīng)用程序使用去保存一個(gè)調(diào)色板。使用wm_cap_pal_paste可以把剪貼板中的調(diào)色板粘貼到捕獲窗口中。捕獲窗口通過這個(gè) 調(diào)色板到捕獲驅(qū)動(dòng)。其他程序可以拷貝調(diào)色板到剪貼板中。你也可以把調(diào)色板粘貼到剪貼板 中。使用wm_cap_endit_copy消息(capeditcopy)e它將拷貝視頻緩存區(qū)(包括調(diào)色板)到 剪貼區(qū)。在avi文件中的嵌入信息塊你可以在一個(gè)avi文件屮插入信息塊,比如文本或者自定義的數(shù)據(jù)。通過使用下面的消息:wm_cap_file_set_infochunk(capfilesetlnfochunk)0 可以使用這個(gè)消息還可以清除掉一

49、個(gè) avi文件中的信息塊。用八數(shù)據(jù)消息通過使用 wm_cap_get_user_data 和 wm_cap_set_user_data 消息對(duì)以關(guān)聯(lián)數(shù)據(jù) 到一個(gè)捕獲窗體。(capgetuserdata和capsetuserdata宏)。使用get消息可以得至!i一個(gè) long數(shù)據(jù)值,可以通過_5吐_消息去設(shè)置該值°3.1.8 avicap回 調(diào)函數(shù)你的應(yīng)用程序可以為一個(gè)捕獲窗口注冊(cè)一些回調(diào)函數(shù),它們可以告訴你的應(yīng)用程序一 些變化。比如捕獲狀態(tài)發(fā)生變化了,或者有錯(cuò)誤發(fā)生了,音視頻緩存區(qū)可使用了。下面的消 息設(shè)置回調(diào)函數(shù)。wm_cap_set_callback_capcontrolcap

50、setcallbackoncapcontrol 去在應(yīng)用程療 :屮指定回調(diào)函數(shù)用于控制捕獲的開始和結(jié)束。wm_cap_set_callback_errorcapsetcallbackonerror 広在應(yīng)用程序中指定回調(diào)函數(shù),當(dāng)出錯(cuò)的時(shí)候就調(diào)用它。wm_cap_set_callback_framecapsetcallbackonframe 宏在應(yīng)用程序中指定冋調(diào)函數(shù),當(dāng)預(yù)覽圖像幀被捕獲了的時(shí)候就調(diào)用它。wm_cap_set_callback_statuscapsetcallbackonstatus 宏在應(yīng)用程序中指定回調(diào)函數(shù),當(dāng)狀態(tài)(status)改變的時(shí)候就調(diào)用它。wm_cap_set_ca

51、llback_videostreamcapsetcallbackonvideostream 宏在應(yīng)用程序中指定回調(diào)函數(shù),在流捕獲期間,當(dāng)一個(gè)新的視頻緩存區(qū)可用的吋候就調(diào)用它。wm_cap_set_callback_wavestreamcapsetcallbackonwavestream 宏在應(yīng)用程序屮指定回調(diào)函數(shù),在流捕獲期間,當(dāng)一個(gè)新的音頻緩存區(qū)可用的時(shí)候就調(diào)用它。wm_cap_set_callback_yieldcapsetcallbackonyield 宏在應(yīng)用程序屮指定冋調(diào)函數(shù),在流捕獲期間yielding (產(chǎn)生?)精確捕獲控制捕獲窗口對(duì)以提供捕獲回調(diào)函數(shù),這個(gè)回調(diào)函數(shù)可以對(duì)流捕獲的

52、開始和結(jié)束時(shí)刻進(jìn)行精確的 控制。在捕獲驅(qū)動(dòng)程序(capture driver)完成所有緩存區(qū)分配和其他捕獲準(zhǔn)備后,捕獲驅(qū)動(dòng) 程序就發(fā)送第一個(gè)消息給回調(diào)處理程序,把nstate參數(shù)設(shè)置為:controlcallback_preroll這個(gè)消息告訴應(yīng)用程序?qū)⒁_啟視頻源了。(這個(gè)回調(diào)函數(shù)指定nstate為它的第二個(gè)參數(shù)) 冋調(diào)函數(shù)將在開始時(shí)刻產(chǎn)生返冋值。返冋值為true那么將繼續(xù)捕獲。為false就中斷捕獲。 一旦捕獲開始,這個(gè)回調(diào)函數(shù)將頻繁的調(diào)用,把nstate設(shè)置為:controlcallback_capturing將允許應(yīng)用程序通過返冋f(shuō)alse去結(jié)束捕獲。捕獲窗口使用錯(cuò)誤通知消息去告訴你的

53、應(yīng)用程序,發(fā)生了 avicap錯(cuò)誤,比如磁盤空 i'可已經(jīng)用完了,嘗試對(duì)一個(gè)只讀文件進(jìn)行寫操作,不能訪問碩件,掉幀太多。錯(cuò)誤通知內(nèi)容 報(bào)價(jià)一個(gè)消息id和一個(gè)格式化的文本字符(用來(lái)顯示)。你的應(yīng)用程序可以通過使用這個(gè)消 息id去過濾錯(cuò)誤通報(bào),還可以讓該錯(cuò)誤信息不顯示給用戶。消息id為0表示一個(gè)新操作正 在開始并且這個(gè)回調(diào)函數(shù)會(huì)清除掉所有的顯示的錯(cuò)誤信息。幀(frame)a capture window uses frame callback notification messages to notify your application when a new video frame is

54、 available. the capture window enables these callback notifications only if the preview rate is non zero and streami ng capture is not in progress.狀態(tài)回調(diào)函數(shù)當(dāng)視頻捕獲向磁盤寫數(shù)據(jù),或者在其他較長(zhǎng)的操作期間,捕獲窗口可以發(fā)送消息給狀態(tài)冋調(diào) 函數(shù)通知你正在處理該操作的應(yīng)用程序。狀態(tài)信息包插一個(gè)消息id和和一個(gè)格式化的文本 字符(用來(lái)顯示)。你的應(yīng)用程序可以通過使用消息id去過濾通報(bào),還可以限制該信息是否 顯示給用戶。在捕獲操作期間,發(fā)給回調(diào)函數(shù)的第一

55、個(gè)消息總是id_cap_gegin,最后一個(gè) 總是id_cap_endo消息id為0表示,一個(gè)新操作正在進(jìn)行并且回調(diào)函數(shù)將清除當(dāng)前狀態(tài)。視頻流在流捕獲期間,應(yīng)用程序可以使用視頻流回調(diào)函數(shù)去處理一個(gè)捕獲的視頻幀。視頻窗 體只能在每次向磁盤寫數(shù)據(jù)幀前,調(diào)用視頻流回調(diào)函數(shù)。音頻流在流捕獲期i'可,應(yīng)用程序可以使用咅頻流回調(diào)函數(shù)去處理咅頻緩存區(qū)。視頻窗體只能在每次 向磁盤寫數(shù)據(jù)幀前,調(diào)用音頻流回調(diào)函數(shù)。yield回調(diào)函數(shù)應(yīng)用程序在流捕獲期間可以使用yield回調(diào)函數(shù)。(yield回調(diào)函數(shù)一般是由一個(gè)消息循環(huán)組 成,可以調(diào)用peekmessageztranslatemessagezdispatc

56、hmessage)o捕獲窗口在每次捕獲視頻幀 時(shí)至少調(diào)用一次yield回調(diào)函數(shù)。但是具體要調(diào)用多少次由幀率來(lái)決定。關(guān)閉回調(diào)函數(shù)你可以暫時(shí)或永久關(guān)閉所有的回調(diào)函數(shù)的功能,在發(fā)送消息設(shè)置回調(diào)函數(shù)的時(shí)候,用null 替換調(diào)回調(diào)函數(shù)就可以了。3.2使用視頻捕獲3.2.1創(chuàng)建捕獲窗體下面的例子通過使用capcreatecapturewindow函數(shù)來(lái)創(chuàng)建一個(gè)捕獲窗體hwndc = capcreatecapturewindow ((lpstr) "my capture window11,/如果是pop-up窗口的窗口名稱ws_child | ws_visible,/窗口類型0, 0, 160,

57、120,/窗口位置和尺寸(hwnd) hwn dpa re nt,(int) nid /* child id */);3.2.2連接到一個(gè)捕獲驅(qū)動(dòng)器下面舉例,如何通過捕獲窗口的句柄hwndc連接到ms video驅(qū)動(dòng)程序上,同時(shí)還演示了 如何斷開連接。使用capdriverdisconnect:fok = sendmessage (hwndc, wm_cap_driver_connect, 0, 0l);/或者使用宏連接:/ fok = capdriverconnect(hwndc, 0);/關(guān)閉連接capdriverdisconnect (hwndc);3.2.3列舉安裝的捕獲驅(qū)動(dòng)程序使用capgetdriverdescription函數(shù)來(lái)獲得系統(tǒng)己經(jīng)安裝的所冇捕獲驅(qū)動(dòng)程序的名稱和版本。char szdevicename80;char szdeviceversion80;for (wlndex = 0; windex < 10; wlndex+)if (capgetdriverdescription (windex, szdevicename,sizeof (szdevicename), szdeviceversion,sizeof (szdeviceversion)/加入名字到一個(gè)已經(jīng)安裝的設(shè)備列表中讓用戶選擇一個(gè)使用。3.2.4獲得捕獲驅(qū)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論