The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

BitBlt函数执行将对应于像素矩形的颜色数据从指定的源设备上下文到目标设备上下文的位块传输。

句法

BOOL BitBlt([in] HDC   hdc,[in] int   x,[in] int   y,[in] int   cx,[in] int   cy,[in] HDC   hdcSrc,[in] int   x1,[in] int   y1,[in] DWORD rop
);

参数

[in] hdc

A handle to the destination device context.

目标设备上下文的句柄。

[in] x

The x-coordinate, in logical units, of the upper-left corner of the destination rectangle.

目标矩形左上角的 x 坐标(以逻辑单位表示)。

[in] y

The y-coordinate, in logical units, of the upper-left corner of the destination rectangle.

目标矩形左上角的 y 坐标(以逻辑单位表示)。

[in] cx

The width, in logical units, of the source and destination rectangles.

源矩形和目标矩形的宽度(以逻辑单位表示)。

[in] cy

The height, in logical units, of the source and the destination rectangles.

源矩形和目标矩形的高度(以逻辑单位表示)。

[in] hdcSrc

A handle to the source device context.

源设备上下文的句柄。

[in] x1

The x-coordinate, in logical units, of the upper-left corner of the source rectangle.

源矩形左上角的 x 坐标(以逻辑单位表示)。

[in] y1

The y-coordinate, in logical units, of the upper-left corner of the source rectangle.

源矩形左上角的 y 坐标(以逻辑单位表示)。

[in] rop

光栅操作代码。这些代码定义了如何将源矩形的颜色数据与目标矩形的颜色数据组合以实现最终颜色。

以下列表显示了一些常见的光栅操作代码。

表 1
Value Meaning

BLACKNESS

使用与物理调色板中的索引 0 关联的颜色填充目标矩形。(对于默认的物理调色板,此颜色为黑色。)

CAPTUREBLT

在生成的图像中包括任何层叠在窗口顶部的窗口。默认情况下,图像仅包含您的窗口。请注意,这通常不能用于打印设备上下文。

DSTINVERT

反转目标矩形。

MERGECOPY

使用布尔 AND 运算符 将源矩形的颜色与当前在hdcDest中选择的画笔合并。

MERGEPAINT

使用布尔 OR 运算符将反转源矩形的颜色与目标矩形的颜色合并。

NOMIRRORBITMAP

防止位图被镜像。(No mirror bitmap)

NOTSRCCOPY

将反转的源矩形复制到目标。

NOTSRCERASE

使用布尔 OR 运算符组合源矩形和目标矩形的颜色,然后反转结果颜色。

PATCOPY

将hdcDest 中当前选择的画笔复制到目标位图中。(Paint Copy)

PATINVERT

使用布尔 XOR 运算符将 当前在hdcDest中选择的画笔的颜色与目标矩形的颜色相结合。

PATPAINT

使用布尔 OR 运算符将 当前在hdcDest中选择的画笔的颜色与反转源矩形的颜色相结合。此操作的结果通过使用布尔 OR 运算符与目标矩形的颜色组合。

SRCAND

使用布尔 AND 运算符组合源矩形和目标矩形的颜色。(Source And)

SRCCOPY

将源矩形直接复制到目标矩形。(Source Copy)

SRCERASE

使用布尔 AND 运算符将目标矩形的反转颜色与源矩形的颜色组合。

SRCINVERT

使用布尔 XOR 运算符组合源矩形和目标矩形的颜色。

SRCPAINT

使用布尔 OR 运算符组合源矩形和目标矩形的颜色。

WHITENESS

使用与物理调色板中的索引 1 关联的颜色填充目标矩形。(对于默认的物理调色板,此颜色为白色。)

返回值

如果函数成功,则返回值非零。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError。

说明

BitBlt仅在目标 DC 上进行剪辑。

如果旋转或剪切变换在源设备上下文中生效,BitBlt将返回错误。如果源设备上下文中存在其他转换(并且匹配的转换在目标设备上下文中无效),则目标设备上下文中的矩形将根据需要进行拉伸、压缩或旋转。

如果源和目标设备上下文的颜色格式不匹配,BitBlt函数将源颜色格式转换为与目标格式匹配。

记录增强元文件时,如果源设备上下文标识增强元文件设备上下文,则会发生错误。

并非所有设备都支持BitBlt功能。有关详细信息,请参阅GetDeviceCaps函数中的 RC_BITBLT 栅格功能条目以及以下函数:MaskBlt、PlgBlt和StretchBlt。

如果源设备上下文和目标设备上下文表示不同的设备, BitBlt将返回错误。要在不同设备的 DC 之间传输数据,请通过调用GetDIBits将内存位图转换为 DIB 。要将 DIB 显示到第二个设备,请调用SetDIBits或StretchDIBits。

ICM:出现 blits 时不执行颜色管理。

例子

下面的代码示例演示了BitBlt的使用。

if (!BitBlt(hdcMemDC,0, 0,rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,hdcWindow,0, 0,SRCCOPY))
{MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);goto done;
}

要在上下文中查看此示例,请参阅捕获图像。

要求

REQUIREMENTS
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

BitBlt(wingdi.h)相关推荐

  1. 位图与bitblt【位图知识】

    位图和Bitblt 位图是一个二维的位数组,此数组的每一个元素与图像的像素一一对应.现实世界的图像被捕获以后,图像被分割成网格,并以像素作为取样单位.位图中的每个像素值指明了一个单位网格内图像的平均颜 ...

  2. 点阵图和Bitblt

    点阵图是一个二维的位元阵列,它与图像的图素一一对应.当现实世界的图像被扫描成点阵图以後,图像被分割成网格,并以图素作为取样单位.在点阵图中的每个图素值指明了一个单位网格内图像的平均颜色.单色点阵图每个 ...

  3. 第15章 位图和Bitblt

    位图是一个二维的位数组,它与图像的图素一一对应.当现实世界的图像被扫描成位图以后,图像被分割成网格,并以图素作为取样单位.在位图中的每个图素值指明了一个单位网格内图像的平均颜色.单色位图每个图素只需要 ...

  4. BitBlt 函数 详解, StretchBlt、SetStretchBltMode、SetBrushOrgEx 按句柄截图、直接截取缩略图...

    BitBlt 该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境. 函数原型 [DllImport("gdi32.dll")]public ...

  5. C# 使用BitBlt进行窗口抓图的示例

    本文和C++使用BitBlt进行窗口抓图对应,使用C#实现. 这种方式对1920*1080大小的窗口,一次抓图的时间参考(VS2015+i5 9400F):低至2~3ms(平均4.3ms). 参见:C ...

  6. C语言 | windows.h实现彩色圣诞树

    目录 一.实验环境 二.黑白圣诞树 三.windows.h简介 四.windows.h实现彩色圣诞树 1.设置用户窗口 2.移动光标 3.修改字体颜色 4.绘制圣诞树 5.绘制雪景 6.完整代码 7. ...

  7. c语言partition头文件,c语言_头文件_windows.h

    概述 Win32程序的开头都可看到: #include WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件.这些头文件中最重要的和最基本的是: ...

  8. windows.h 详解

    参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effe ...

  9. windows.h详解

    参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...

最新文章

  1. Redis 集群部署及踩过的坑
  2. Worktile 进军软件开发与协作的初心与野心
  3. 内存分配算法 之 首次适应-最佳适应
  4. 点对点信道互连以太网实验_汽车以太网 – 引领汽车IVN向多速以太网过渡
  5. python如何爬虫网页数据-如何轻松爬取网页数据?
  6. 整合spring cloud云架构 - Gateway的基本入门
  7. 网鼎杯2020 朱雀部分writeup
  8. lambda也是python_Python lambda介绍
  9. 理解几个网络硬件(调制解调器、路由器、交换机)的基本作用
  10. BZOJ2844 albus就是要第一个出场
  11. java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...
  12. 2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用
  13. C++之const关键字探究
  14. Java 8 Stream 闪亮登场!
  15. GIS设备局部放电在线监测的研究设计报告
  16. box-sizing失效的原因
  17. HTML页面基本结构。
  18. 两小时从零学会vue-admin-template框架
  19. rss下载_Microsoft下载中心RSS提要
  20. hive------内部函数与自定义函数

热门文章

  1. 网康防火墙--上线指南_在线付款接受指南-第4部分
  2. lambda与函数式——响应式Spring的道法术器
  3. 分布式追踪与监控:Skywalking
  4. 以下选项中不是具体的python序列类型的是_以下选项中,不是具体的Python序列类型的是:( )...
  5. RSA背后的数学原理
  6. 甘肃教育网计算机一级查询系统,甘肃计算机一级考试成绩查询
  7. vcredist_x64.exe 安装报错:0x80070003系统找不到指定的路径
  8. 如何理解面向对象的封装、继承和多态?
  9. 在ubuntu系统下安装python
  10. linux 进程最小化,如何实现Linux系统最小化(4)