如何将jpg文件加载到CBitmap(visual c ++ 6.0)?

时间:2012-04-10 12:08:13

标签: c++ visual-c++ mfc

如何将jpg加载到我使用visual c ++ 6.0并且无法访问CImage的CBitmap中?

THX

5 个答案:

答案 0 :(得分:2)

我只是简单地调用OleLoadPicturePath api来加载jpg而不是其他常见格式。

将其加载到IPicture对象后,您可以调用get_Handle来获取HBITMAP的句柄。

由于

答案 1 :(得分:1)

你不能,或者至少没有内置方式。看看CxImage,你可以使用它,特别是当你只需要jpg支持时。

答案 2 :(得分:1)

这种转换很复杂,所以我建议使用外部库,看看this

答案 3 :(得分:1)

CBitmap bmp;
HANDLE h = ::LoadImage(NULL, _T("c:\\MyImage.jpg"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
bmp.Attach(h);

答案 4 :(得分:1)

我所知道的没有本土方式。我总是将FreeImage用于JPG和PNG - 它非常强大,FAQ中有关于如何将PNG加载到HBITMAP中的示例代码(对于JPG来说,它的工作方式完全相同)。

来自经验的一句警告 - 如果您将JPG存储为资源,请确保创建“JPG”资源类型并将其存储为该类型,不要尝试将其添加为BITMAP资源或您尝试加载它会遇到各种各样的问题。我知道这听起来很明显,但我花了一段时间才弄明白。