如何将 jpg 加载到使用 Visual c++ 6.0 且无权访问 CImage 的 CBitmap 中?
谢谢
我会简单地调用 OleLoadPicturePath api 来加载不仅 jpg 还加载其他常见格式。
将其加载到 IPicture 对象后,您可以调用 get_Handle 来获取 HBITMAP 的句柄。
谢谢
您不能,或者至少没有内置方式。看看 CxImage,你可能可以让它工作,特别是当你只需要 jpg 支持时。
这种转换很复杂,所以我建议使用外部库,看看这个。
CBitmap bmp;
HANDLE h = ::LoadImage(NULL, _T("c:\\MyImage.jpg"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
bmp.Attach(h);
没有我知道的本地方式。我一直将FreeImage用于 JPG 和 PNG - 它非常强大,FAQ 中有关于如何将 PNG 加载到 HBITMAP 中的示例代码(它对 JPG 的工作方式完全相同)。
来自经验的警告-如果您将 JPG 存储为资源,请确保创建“JPG”资源类型并将其存储,不要尝试将其添加为 BITMAP 资源,否则您将拥有尝试加载它的各种问题。我知道这听起来很明显,但我花了一段时间才弄清楚。