壓縮資料
[與此頁面相關聯的功能影片 壓縮管理員是舊版功能。 Microsoft 強烈建議新程式碼不使用這項功能。]
下列範例會壓縮影像資料,以用於 AVI 檔案。 它假設壓壓器不支援VIDCF_CRUNCH或VIDCF_TEMPORAL旗標,但支援VIDCF_QUALITY。 此範例使用ICCompressBegin宏、ICCompress 函式和 ICCompressEnd宏。
DWORD dwCkID;
DWORD dwCompFlags;
DWORD dwQuality;
LONG lNumFrames, lFrameNum;
// Assume dwNumFrames is initialized to the total number of frames.
// Assume dwQuality holds the proper quality value (0-10000).
// Assume lpbiOut, lpOut, lpbiIn, and lpIn are initialized properly.
// If OK to start, compress each frame.
if (ICCompressBegin(hIC, lpbiIn, lpbiOut) == ICERR_OK)
{
for ( lFrameNum = 0; lFrameNum < lNumFrames; lFrameNum++)
{
if (ICCompress(hIC, 0, lpbiOut, lpOut, lpbiIn, lpIn,
&dwCkID, &dwCompFlags, lFrameNum,
0, dwQuality, NULL, NULL) == ICERR_OK)
{
// Write compressed data to the AVI file.
// Set lpIn to the next frame in the sequence.
}
else
{
// Handle compressor error.
}
}
ICCompressEnd(hIC); // terminate compression
}
else
{
// Handle the error identifying the unsupported format.
}