- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道如何在 MFC 代码中从 CImage
获取 CBitmap
。
问题是MSDN告诉我使用 CImage::m_hBitmap
从句柄生成一个 CBitmap
。但不幸的是,CImage::m_hBitmap
对 CImage
是私有(private)的。我是不是弄错了什么?
MSDN 代码摘录:
CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image.m_hBitmap);
谢谢!
最佳答案
要从m_hBitmap
获取句柄,请直接使用CImage
对象。 MSDN 上的联机帮助似乎未正确更新。
MFC 开发人员添加了运算符 HBITMAP
,因此从 CImage
到 HBITMAP
的转换无需用户干预即可完成。
在头文件 atlimage.h
中访问 m_hBitmap
的内联代码:
inline CImage::operator HBITMAP() const throw()
{
return (m_hBitmap);
}
为了使代码 image.m_hBitmap
必须仅替换为 image
。
CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image);
就是这样。
编辑:我也找到了替代解决方案,see here .
关于c++ - MFC 7.0 C++ 如何从 CImage 获取 CBitmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182971/
我得到不完整的类型不允许使用 CImage 图像; 我用过这个: 出了什么问题?我以前从未叫过课。 using namespace std; class CImage; myfunction(hbit
我需要创建一个 CImage来自一个字节数组(实际上,它是一个 unsigned char 数组,但我可以强制转换为任何必要的形式)。字节数组的形式为“RGBRGBRGB...”。新图像需要包含图像字
我最近开始学习如何在 Visual Studio 中使用 MFC。我的程序使用了许多 32x32 像素的小图像,为方便起见,这些图像被放在一个大的 .png 中。我已经想出如何将大图像加载到 CIma
我目前正在尝试弄清楚如何在 CArchive (JPEG) 中正确存储 CImage 文件。我目前的做法是以下(伪)代码: BOOL CPicture::Serialize(CArchive &ar)
最近我看到一些人告诉其他人,如果他们需要转换,他们做错了什么。我在 C++ 中有这段代码 byte* pixel = (byte*)image->GetBits(); 这里我转换为 byte*,因为
我正在尝试复制一个 CImage 以便我可以对其像素进行一些操作。我试过这个,其中 source 是指向加载的 CImage 对象的指针。 CImage* dest = new CImage(*sou
请看下面的代码: // Create an empty bitmap BRGA CImage segImage; HDC hSeg = CreateCompatibleDC(NULL); Select
我正在显示来自相机的实时取景视频。我将每一帧下载到我必须分配的字节数组 (pImageData) 中。 现在,为了显示,我正在使用 CImage (MFC)。但是,我找到的所有样本都是基于使用 Glo
我想知道如何做这样的事情 CBitmap bmp; CImage img; /// bmp=img; //use bmp here 在我的程序中,有时我必须使用 CBitmap,但从一开始我就只使
我的问题基本上是,如何旋转 Windows ATL::CImage 对象? 我已经使用 Windows ATL CImage 对象加载了 JPG 图像,例如: CImage myImage; myIm
我有 Windows 8 和 Micosoft Visual Studio 2010 Express。 我正在做一个项目,我需要通过客户端和服务器传输图片。我搜索了一下,发现 CImage 类很有用。
我正在尝试获取 AtlImage 的字节缓冲区。类型是 CImage此代码仅缩放从路径 szFilePath 加载的图像在这里: int iNewWidth = 60; int iNewHeight
我刚开始在我的 MFC 项目中使用 ATL::CImage,这是一个非常基本的问题。我知道 ATL::CImage 成员支持用于控制透明度的 AlphaBlend() 和用于旋转的 plgblt()。
我们有一个要求,即用户可以将任何标准图像加载到对话框中,显示图像,并将图像以特定格式 (JPG) 保存在数据库中。似乎 CImage 是要使用的类,因为它可以加载和保存 BMP/GIF/JPG/PNG
我不使用 C++ 或 MFC/ATL 等,所以假设我什么都不知道。 整个画面是我需要接受一个带有透明层的 PNG 并将其写成具有指定压缩率的 JPEG 以传递给另一个系统。 我想知道的是,我如何用纯白
请问CImage如果它尝试加载另一个图像并且加载方法失败,则它的像素会被更改? 最佳答案 没有记录异常保证,因此您不能假设任何事情。 查看 CImage::Load (atlimage.h) 的源代码
如何使用 CImage 从 BYTE* 数组加载图像?到目前为止,我的解决方法是简单地创建一个临时文件,但这种操作有时非常昂贵......可能有相应的库,但我不想链接到其他库,我所需要的只是获取图像大
我在将 Alpha 图像打印到打印机设备上下文(真实或 XPS 文档编写器)时遇到问题。它们在屏幕上下文和打印预览中工作得很好,但是当我打印到文件或打印机时,当它们位于另一个图像的顶部时,它们显示为黑
我正在开发一个应用程序,其中我将 .png 图像存储到数据库(使用 SQLite3),现在根据我的要求,我希望图像与 ListCtrl 项目一起显示,那又怎样我需要的是根据从数据库中检索到的 blob
我的问题是:如果我直接在之前从 .PNG 文件加载的 CImage 上绘制一些文本。文本本身是透明的(您可以通过它看到背景颜色)并且无法使其具有所需的颜色。 CImage image; image.L
我是一名优秀的程序员,十分优秀!