4

如何将 jpg 加载到使用 Visual c++ 6.0 且无权访问 CImage 的 CBitmap 中?

谢谢

4

5 回答 5

2

我会简单地调用 OleLoadPicturePath api 来加载不仅 jpg 还加载其他常见格式。

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

谢谢

于 2012-04-10T13:27:07.387 回答
1

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

于 2012-04-10T13:17:29.563 回答
1

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

于 2012-04-10T13:19:06.160 回答
1
CBitmap bmp;
HANDLE h = ::LoadImage(NULL, _T("c:\\MyImage.jpg"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
bmp.Attach(h);
于 2012-04-10T14:53:16.857 回答
1

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

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

于 2012-04-10T14:58:23.290 回答