如何从Gdiplus::Image中得到位图的HBITMAP 我创建了一个Image对象,采用了一个png文件作为参数,现在我需要得到它的HBITMAP,可是Image没有提供相应的函数,我该怎么做。Image的派生类Bitmap中倒是提供了这个功能,我怎样能把Image对象转化为Bitmap对像。由于某些原因,我无法在读文件的时候就直接使用Bitmap 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先轉成BMP再取得HBITMAPImage image(L"E:\\temp.png");CLSID clsid;GetEncoderClsid(L"image/bmp", &clsid);image.Save(L"E:\\temp.bmp", &clsid, NULL);Bitmap bmp(L"E:\\temp.bmp");HBITMAP hBmp;Color cr;bmp.GetHBITMAP(&cr , hBmp);...int GetEncoderClsid(const WCHAR *format, CLSID *pClsid){ UINT num = 0; // number of image encoders UINT size = 0; // size of the image encoder array in bytes ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(&num, &size); if(size == 0) return -1; // Failure pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo == NULL) return -1; // Failure GetImageEncoders(num, size, pImageCodecInfo); for(UINT j = 0; j < num; ++j) { if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 ) { *pClsid = pImageCodecInfo[j].Clsid; free(pImageCodecInfo); return j; // Success } } free(pImageCodecInfo); return -1; // Failure }時間問題,未經測試 救急:VC2010编译的程序如何能在Win2000上运行 请问高手socket1.0在连接没有丢失的情况下,出现数据传输不稳定的情况,如何解决,小弟在线等待! 关于msflexgrid动态的建立表格和数据的传递 如何打开系统默认音频设备? 可变长参数的调用 关于脚本的一个小问题: 一个很菜得问题 屏保密码问题 组件中自定义结构编译的问题 内存泄漏是什么意思? 使用PDF.ocx的问题 请教一下关于DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)函数
Image image(L"E:\\temp.png");CLSID clsid;
GetEncoderClsid(L"image/bmp", &clsid);image.Save(L"E:\\temp.bmp", &clsid, NULL);
Bitmap bmp(L"E:\\temp.bmp");
HBITMAP hBmp;Color cr;
bmp.GetHBITMAP(&cr , hBmp);...int GetEncoderClsid(const WCHAR *format, CLSID *pClsid)
{
UINT num = 0; // number of image encoders
UINT size = 0; // size of the image encoder array in bytes
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size);
if(size == 0)
return -1; // Failure
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1; // Failure
GetImageEncoders(num, size, pImageCodecInfo);
for(UINT j = 0; j < num; ++j)
{
if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j; // Success
}
}
free(pImageCodecInfo);
return -1; // Failure
}時間問題,未經測試