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

How can I load a jpg file into CBitmap (visual c++ 6.0)?

本文关键字:visual CBitmap jpg 文件 加载      更新时间:2023-10-16

如何将jpg加载到CBitmap中,而我正在使用Visual c ++ 6.0并且无法访问CImage?

感谢

我只是简单地调用OleLoadPicturePath api来加载jpg,还可以加载其他常见格式。

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

谢谢

我知道没有原生方法。我一直将 FreeImage 用于 JPG 和 PNG - 它很强大,常见问题解答中有关于如何将 PNG 加载到 HBITMAP 中的示例代码(对于 JPG 的工作方式完全相同)。

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

你不能

,或者至少没有内置的方式。看看CxImage,你可能会让它工作,特别是当你只需要jpg支持时。

这种转换很复杂,所以我会使用外部库进行检查,看看这个。

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