압축기 및 압축 해제기 찾기 및 열기
[이 페이지와 연결된 기능인 Video Compression Manager는 레거시 기능입니다. 새 코드는 이 기능을 사용하지 않는 것이 좋습니다.]
다음 예제에서는 ICLocate 함수를 사용하여 픽셀당 8비트 비트맵을 압축할 수 있는 압축기를 찾습니다.
BITMAPINFOHEADER bih;
HIC hIC
// Initialize the bitmap structure.
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biWidth = bih.biHeight = 0;
bih.biPlanes = 1;
bih.biCompression = BI_RGB; // standard RGB bitmap
bih.biBitcount = 8; // 8 bits-per-pixel format
bih.biSizeImage = 0;
bih.biXPelsPerMeter = bih.biYPelsPerMeter = 0;
bih.biClrUsed = bih.biClrImportant = 256;
hIC = ICLocate (ICTYPE_VIDEO, 0L, (LPBITMAPINFOHEADER) &bih,
NULL, ICMODE_COMPRESS);
다음 예제에서는 시스템의 압축 해제기를 열거하여 이미지 형식을 처리할 수 있는 압축을 찾습니다. 이 예제에서는 ICTYPE_VIDEO ("VIDC" 4자 코드와 동일)와 ICDecompressQuery 매크로를 사용하여 압축기 또는 압축 해제기가 이미지 형식을 지원하는지 여부를 확인합니다.
for (i=0; ICInfo(fccType, i, &icinfo); i++)
{
hic = ICOpen(icinfo.fccType, icinfo.fccHandler, ICMODE_QUERY);
if (hic)
{
// Skip this compressor if it can't handle the format.
if (fccType == ICTYPE_VIDEO && pvIn != NULL &&
ICDecompressQuery(hic, pvIn, NULL) != ICERR_OK)
{
ICClose(hic);
continue;
}
// Find out the compressor name.
ICGetInfo(hic, &icinfo, sizeof(icinfo));
// Add it to the combo box.
n = ComboBox_AddString(hwndC,icinfo.szDescription);
ComboBox_SetItemData(hwndC, n, hic);
}
}
다음 예제에서는 8비트 RGB 형식을 8비트 RLE 형식으로 압축하기 위해 특정 압축기를 찾으려고 시도합니다.
BITMAPINFOHEADER bihIn, bihOut;
HIC hIC
// Initialize the bitmap structure.
biSize = bihOut.biSize = sizeof(BITMAPINFOHEADER);
bihIn.biWidth = bihIn.biHeight = bihOut.biWidth = bihOut.biHeight = 0;
bihIn.biPlanes = bihOut.biPlanes= 1;
bihIn.biCompression = BI_RGB; // standard RGB bitmap for input
bihOut.biCompression = BI_RLE8; // 8-bit RLE for output format
bihIn.biBitcount = bihOut.biBitCount = 8; // 8 bits-per-pixel format
bihIn.biSizeImage = bihOut.biSizeImage = 0;
bihIn.biXPelsPerMeter = bih.biYPelsPerMeter =
bihOut.biXPelsPerMeter = bihOut.biYPelsPerMeter = 0;
bihIn.biClrUsed = bih.biClrImportant =
bihOut.biClrUsed = bihOut.biClrImportant = 256;
hIC = ICLocate (ICTYPE_VIDEO, 0L,
(LPBITMAPINFOHEADER)&bihIn,
(LPBITMAPINFOHEADER)&bihOut, ICMODE_COMPRESS);
관련 항목