ICCompress 函式 (vfw.h)
ICCompress函式會壓縮單一視訊影像。
語法
DWORD VFWAPIV ICCompress(
HIC hic,
DWORD dwFlags,
LPBITMAPINFOHEADER lpbiOutput,
LPVOID lpData,
LPBITMAPINFOHEADER lpbiInput,
LPVOID lpBits,
LPDWORD lpckid,
LPDWORD lpdwFlags,
LONG lFrameNum,
DWORD dwFrameSize,
DWORD dwQuality,
LPBITMAPINFOHEADER lpbiPrev,
LPVOID lpPrev
);
參數
hic
要使用的壓機控制碼。
dwFlags
壓縮旗標。 定義下列值:
ICCOMPRESS_KEYFRAME
壓機應該讓此畫面成為主要畫面格。
lpbiOutput
點陣圖INFOHEADER結構的指標,其中包含輸出格式。
lpData
輸出緩衝區的指標夠大,足以包含壓縮框架。
lpbiInput
點陣圖INFOHEADER結構的指標,其中包含輸入格式。
lpBits
輸入緩衝區的指標。
lpckid
保留;請勿使用。
lpdwFlags
AVI 索引中使用的傳回旗標指標。 定義下列值:
AVIIF_KEYFRAME
目前的畫面是主要畫面格。
lFrameNum
框架編號。
dwFrameSize
要求的框架大小,以位元組為單位。 如果壓縮器支援建議的框架大小,請指定非零值,如ICGetInfo函式所傳回VIDCF_CRUNCH旗標的存在所表示。 如果未設定此旗標,或未指定框架的資料速率,請指定此參數的零。
壓縮器可能需要犧牲影像品質,或進行一些其他取捨,以取得此參數中指定的大小目標。
dwQuality
框架的要求品質值。 如果壓縮器支援建議的品質值,請指定非零值,如ICGetInfo所傳回VIDCF_QUALITY旗標的存在所表示。 否則,請為此參數指定零。
lpbiPrev
點陣圖INFOHEADER結構的指標,其中包含上一個框架的格式。
lpPrev
上一個框架未壓縮影像的指標。 此參數不會用於快速時態壓縮。 如果壓縮主要畫面格不支援時態壓縮,或者如果壓縮器不需要外部緩衝區來儲存上一個影像的格式和資料,請指定此參數的 Null 。
傳回值
如果成功或發生錯誤,則傳回 ICERR_OK 。
備註
您可以藉由傳送 ICM_COMPRESS_GET_SIZE訊息 ( 或使用 ICCompressGetSize 宏) 來取得輸出緩衝區大小所需的 。
壓縮會將 lpdwFlags 的內容設定為在建立主要畫面格時 AVIIF_KEYFRAME 。 如果您的應用程式建立 AVI 檔案,它應該會將 lpckid 和 lpdwFlags 傳回的資訊儲存在檔案中。
壓縮會使用 lpbiPrev 和 lpPrev 來執行時態壓縮,並要求外部緩衝區儲存上一個框架的格式和資料。 壓縮主要畫面格時、執行快速壓縮時,或如果壓縮器有自己的緩衝區來儲存上一個影像的格式和資料,請為lpbiPrev和lpPrev指定Null。 如果ICGetInfo傳回VIDCF_TEMPORAL旗標,則為這些參數指定非Null值,而要壓縮的框架則不是主要畫面格。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | vfw.h |
程式庫 | Vfw32.lib |
Dll | Msvfw32.dll |