GDI+学习图像的编码与解码

Home / Hackintosh MrLee 2015-4-1 2953

一、获取编、解码器信息
获取编码器信息
开发人员可以使用诸如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://www.it72.com/1853.htm

推荐阅读
最新回复 (0)
返回