`

GetBitmapBits 以及 SetBitmapBits的用法

    博客分类:
  • C++
阅读更多
HBITMAP hCaptureBitmap = CopyScreenToBitmap(0, 1024,0, 768);
CBitmap*   pBmp   =   CBitmap::FromHandle(hCaptureBitmap);
int Count;
BITMAP bm;    
pBmp->GetObject(sizeof(bm),&bm);
Count = bm.bmWidthBytes * bm.bmHeight; //得到buf大小
BYTE *b=new BYTE[Count];
pBmp->GetBitmapBits(Count,b);

HDC hdc=::GetDC(m_hWnd);//
HDC mdc=CreateCompatibleDC(hdc);
HBITMAP MyBit=CreateCompatibleBitmap(hdc,1024,768);
SetBitmapBits(MyBit,Count,b);
SelectObject(mdc,MyBit);
BitBlt(hdc,0,0,1024,768,mdc,0,0,SRCCOPY);
::ReleaseDC(m_hWnd,hdc);
DeleteObject((HGDIOBJ)mdc);
delete [Count] b;
分享到:
评论

相关推荐

    利用VB内置API函数旋转BMP位图实例

    在旋转BMP位图时,我们需要先使用`GetBitmapBits`获取原始位图的所有像素信息,然后根据旋转的角度,计算每个像素的新位置,并使用`SetBitmapBits`将像素数据设置到新的位置。这个过程通常涉及矩阵运算,如旋转矩阵...

    VB代码VB小程序:将彩色图像转变为黑白图像实用.pdf

    转换过程中,首先使用`GetBitmapBits`获取原图像的像素值,然后根据转换算法修改这些像素值,最后再使用`SetBitmapBits`将修改后的像素值写回到位图中。 ##### 2. 使用VB控件方法转换图像 - **PictureBox控件**:在...

    CDib类(MFC图像编程必备)

    - GetBitmapBits和SetBitmapBits函数:用于获取或设置DIB的像素数据。 - StretchDIBits函数:实现DIB的拉伸绘制,可以调整DIB的大小以适应目标区域。 4. DIB与CBitmap的区别 虽然CBitmap类也可以用来处理位图,...

    Rotatebmp_visualbasic_

    但是,当需要对位图进行低级别控制,或者处理大型图像时,使用`SetBitmapBits`和`GetBitmapBits`会更有效率。 在提供的"code"文件中,应该包含了实现这一功能的具体VB代码。通过阅读和理解代码,可以学习到如何结合...

    VB代码VB小程序:将彩色图像转变为黑白图像.docx

    API(Application Programming Interface)方法是通过调用操作系统提供的图形设备接口(GDI)函数来处理图像,而VB控件方法则使用VB内置的图像处理控件来实现转换。 在VB6环境中,这个小程序通过窗体(Form)和若干...

    VB代码VB小程序:将彩色图像转变为黑白图像定义.pdf

    而使用VB控件的方法虽然易于理解和实现,但处理速度相对较慢。 #### 二、基础知识介绍 在深入了解具体的转换方法之前,我们先简要了解一下与该主题相关的基础知识。 **1. Windows API函数** Windows API...

    VB代码VB小程序:将彩色图像转变为黑白图像.pdf

    通过对上述两种方法的分析,可以看出API方法虽然复杂但在性能上具有明显优势,而使用VB控件的方法虽然效率较低,但是更易于理解和学习。对于不同的应用场景,可以根据需求选择合适的方法。例如,在开发图像处理软件...

    MFC_BMP.rar_32位bmp_MFC 写BMP_mfc bmp_mfc B_mfc bmp rar

    可以使用CBitmap的GetBitmapBits方法获取位图的原始数据,然后进行相应的操作。例如,反色操作可以遍历每个像素,交换其红绿蓝通道的值: ```cpp BYTE* pBits = NULL; int nBytes = bitmap.GetBitmapBits(NULL, &...

    CBitmap位图操作大集合

    在Windows编程领域,CBitmap是MFC(Microsoft ...通过阅读《CBitmap操作.pdf》这份文档,你将能够深入了解CBitmap的使用方法,并将这些技巧应用到实际项目中,提升你的Windows应用程序的视觉表现力和用户体验。

    BMP.zip_MFC图像处理BMP

    4. **读取和写入BMP数据**:`CBitmap`对象提供了一些方法,如`GetBitmapBits`和`SetBitmapBits`,可以用来读取或写入BMP图像的像素数据。这些数据通常是按RGB三原色顺序排列的。 5. **图像处理**:在位图被选入设备...

    bmp图片显示

    在MFC中,可以使用CBitmap::GetBitmapBits()获取位图的原始数据,然后用CBitmap::SetBitmapBits()设置新的位图数据。 ```cpp // 假设我们要删除RGB(255, 0, 0)的颜色 COLORREF colorToRemove = RGB(255, 0, 0); ...

    VC中文版MSDN1

    掌握CBitmap的使用方法,对于开发高质量的图形界面应用具有重要意义。 通过本文的详细介绍,读者应能理解CBitmap的基本概念、构造与初始化方式、主要属性和操作函数,以及如何在实际开发中灵活运用这些知识。这将有...

    256转灰度图VC++程序源代码

    本文将深入探讨如何使用Visual C++来实现这一过程,以及涉及到的相关技术点。 首先,我们要理解颜色模型。在256色图像中,每像素由红、绿、蓝(RGB)三个颜色通道组成,每个通道有8位,总共24位。每种颜色有256个...

    vc源码 改变pic控件颜色 实例

    在Windows编程中,这种功能可以通过多种方法实现,包括使用GDI(Graphics Device Interface)或GDI+库,以及现代的Direct2D和DirectWrite。 首先,让我们讨论如何使用GDI来改变控件的颜色。GDI是Windows API的一...

    VC++中图像处理类CBitmap的用法

    下面我们将详细讨论CBitmap类的使用方法。 首先,CBitmap类提供了一些构造函数,允许用户创建空的位图对象或从HBITMAP句柄创建位图对象。例如,无参数的构造函数`CBitmap()`用于创建一个空的位图对象,而`...

    藏经阁-TAKING WINDOWS 10 KERNEL.pdf

    3. 使用SetBitmapBits和GetBitmapBits等函数进一步操作和利用这些漏洞。 演讲还提到了Win32k系统调用过滤,这是一个防止恶意利用的重要机制。尽管如此,攻击者依然可以通过各种技术绕过这些防御,如动态函数定位和...

    fanse.rar_Windows编程_Visual_C++_

    通过分析提供的源代码,我们可以学习到如何在C++环境中处理图像,理解GDI或DirectX的基本用法,以及掌握图像处理算法的实现细节。 在实际应用中,这种反色功能可能被用于各种用途,如图像滤镜、逆向工程、图像分析...

    VC++.net如何利用掩码位图制作透明图片

    2. **获取掩码位图**:某些位图资源可能已经内置了掩码,可以通过`CBitmap`的`GetBitmapBits`和`SetBitmapBits`方法来获取和设置位图的掩码信息。如果位图没有内置掩码,我们需要手动创建一个。 3. **创建设备上...

Global site tag (gtag.js) - Google Analytics