现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

LoadImage加载JPG的曲折过程

2014-02-27 22:06 工业·编程 ⁄ 共 723字 ⁄ 字号 暂无评论

    最近要实现遍历某路径下所有JPG文件,并获取每个图片的大小,我的代码如下:
HBITMAP  image;
CBitmap m_bmp;
image= (HBITMAP)::LoadImage( NULL,L"D:\\a1.jpg",IMAGE_BITMAP,0,0,0);
BITMAP bm;
m_bmp.Attach(image);
m_bmp.GetObject(sizeof(BITMAP),&bm);
//bm.bmWidth中保存图片的宽度
//bm.bmHeight中保存图片的高度
结果总是image=NULL;
于是,我调用了DWORD geterror=GetLastError();
结果geterror=0,调用成功?
这下郁闷的两个小时开始了...

后来,在牛人的提醒下选择了CImage,代码如下:
CImage image;
CBitmap m_bmp;
image.Load(L"D:\\a1.jpg");
BITMAP bm;
m_bmp.Attach(image);
m_bmp.GetObject(sizeof(BITMAP),&bm);
//bm.bmWidth中保存图片的宽度
//bm.bmHeight中保存图片的高度

成功获取图片大小。
原因分析:
If the hinst parameter is NULL and the fuLoad parameter omits the LR_LOADFROMFILE value, the lpszName specifies the OEM image to load. The OEM image identifiers are defined in Winuser.h and have the following prefixes.
代码中的参数设置标示只能加载OEM图像。

给我留言

留言无头像?