一、获取编、解码器信息
获取编码器信息
开发人员可以使用诸如GetImageEncodes来获取系统可用的编码器,用GetImageDecodes来获得系统可用的解码器;由于这两个函数都是一样的,所以我们只看GetImageEncodes函数的定义就好了;
Status GetImageEncoders(
UINT numEncoders,
UINT size,
ImageCodecInfo* encoders
);
参数说明: numEncodes:[in]系统支持的编码器总数,该值可以使用GetImageEncodersSize函数来获取。 size:[in]描述所有编码器的详细信息所需要的空间大小,该值由GetImageEncodersSize函数来获取。 encodes[out]ImageCodecInfo数组,描述所返回的编码器的详细信息; 这里又涉及到了几个新的函数,一个个来看:
Status GetImageEncodersSize(
UINT* numEncoders,
UINT* size
);
参数说明: numEncodes:[out]返回的编码器总数。 size:[out]描述由函数返回的所有编码器信息所需要的空间大小(以字节为单位)。 这两个参数是GetImageEncodes函数所必须的; 再来看最后一个ImageCodecInfo类,该类没有任何方法,所有的都是数据成员,这些数据成员描述了编码器的详细信息,其数据成员如下;

代码示例:
FontFamily ff(L"宋体");
Font font(&ff,20,FontStyleRegular,UnitPixel);
UINT num;
UINT size;
ImageCodecInfo *pImageCodecInfo;
GetImageEncodersSize(&num,&size);
//获取编码器数组
pImageCodecInfo=(ImageCodecInfo*)malloc(size);
GetImageEncoders(num,size,pImageCodecInfo);
//打印显示
CStringW temp,info;
for(UINT j=0;j

获取解码器信息 上面提取获取解码器信息是用GetImageDecodes函数,但另一点没讲,就是此函数的num,size是用对应的GetImageDecodersSize函数来获取的,先看下GetImageDecodes的定义: Status GetImageDecoders(
UINT numDecoders,
UINT size,
ImageCodecInfo* decoders
);
参数说明:与GetImageEncoders参数相同; numDecodes:[in]系统支持的编码器总数,该值可以使用GetImageDecodersSize函数来获取。 size:[in]描述所有编码器的详细信息所需要的空间大小,该值由GetImageDecodersSize函数来获取。 encodes[out]ImageCodecInfo数组,描述所返回的编码器的详细信息; GetImageDecodersSize函数: Status GetImageDecodersSize(
UINT* numDecoders,
UINT* size
);
参数说明: numEncodes:[out]返回的解码器总数。 size:[out]描述由函数返回的所有解码器信息所需要的空间大小(以字节为单位)。 这两个参数是GetImageDecodes函数所必须的; 示例:(枚举系统中的解码器信息) FontFamily ff(L"宋体");
Font font(&ff,20,FontStyleRegular,UnitPixel);
UINT num;
UINT size;
ImageCodecInfo *pImageCodecInfo;
GetImageDecodersSize(&num,&size);
//获取编码器数组
pImageCodecInfo=(ImageCodecInfo*)malloc(size);
GetImageDecoders(num,size,pImageCodecInfo);
//打印显示
CStringW temp,info;
for(UINT j=0;j

本文链接:https://it72.com:4443/1853.htm