cost 326 ms
GetDIBits 在屏幕捕获中多次迭代后返回零 function - GetDIBits Returns Zero after Many Iterations In Screen Capture function

我正在使用此代码来捕获屏幕和 cursor。 屏幕截图完美运行,但在屏幕截图超过 8 分 30 秒后总是失败。 8 分 30 秒后,GetDIBits 开始返回 0。我正在使用 windows 10 专业版的 64 位机器上运行它。 如果我删除 cursor 捕获代码,此问题似乎不会出现。 ...

DrawIconEx 和 GetDIBits 的奇怪行为,alpha 为零 - Strange behavior with DrawIconEx and GetDIBits, with alpha as zero

我正在使用此代码来捕获屏幕 + cursor: 由于某种原因,当 cursor 是 I 型光束(文本光标)时,它应该位于的图像区域全是透明的。 RGB 信息在那里,但 alpha 位是0 。 (右侧图像是手动将所有像素 alpha 位设置为 255 后帧的外观)。 如果 cursor 是箭头 ...

GetDiBits:BITMAPINFOHEADER传递的不同尺寸 - GetDiBits: different dimensions passed in BITMAPINFOHEADER

根据我对此功能的经验,我对GetDiBits有一些疑问。 我错误地创建了一个比我需要的大两倍的位图: 我没有注意到因为代码的下一部分有效。 我BitBlt屏幕的一部分在这个位图的一半: 然后我得到相应的数组: 当我将所有这些数据发送到另一台计算机时,图像完全正确(没有 ...

了解GetDiBits。 C ++ - Understanding GetDiBits. C++

MSDN表示,在调用此函数之前,不应将GetDiBits使用的位图选择为DC。 但是根据我的经验(使用BitBlt ),我知道除非选择位图,否则无法绘制位图。 GetDiBits如何规避这一点? 我可以仅使用未选择的新创建的位图作为此函数的参数吗? GetDiBits以及C ...

关于GetDIBits和设备上下文的奇怪错误 - A weird error about GetDIBits and device context

我今天遇到一个非常奇怪的问题。 在带有MFC项目的VC6上运行以下代码,它是黑屏,如果我删除注释,它可以完美运行并显示桌面图片。 但是这些代码是在无限循环中执行的,因此我尝试减少内存复制和内存消耗,例如BitBlt和CreateCompatibleBitmap等。我不了解我的程序与这些注释代 ...

为什么在Win64上调用GetDIBits会失败? - Why does a call to GetDIBits fail on Win64?

我调用GetDIBits ,它在32位上完美运行,但在64位上失败。 尽管句柄的值不同,但bitmapinfo结构的内容是相同的。 这是我可以用来重现错误的最小(至少是结构稍微)代码示例。 我使用Delphi 10 Seattle Update 1进行了测试,但是即使使用其他Delph ...

GetDIBits将图像缓冲区设置为全0(全黑) - GetDIBits sets image buffer to all 0's (all black)

尝试将窗口的屏幕截图作为位图。 下面的代码创建一个适当大小的位图,但是每个像素都是黑色的。 换句话说,GetDIBits将imageBuffer设置为全0。 发布的代码为每个打开并在屏幕上可见的记事本保存一个位图。 没有一个断言失败。 省略了BITMAPFILEHEADER和实 ...

C ++使用GetDIBits()读取像素 - c++ read pixels with GetDIBits()

我正在尝试创建一个等效于Windows API GetPixel()函数的函数,但是我想创建屏幕的位图,然后读取该缓冲区。 这就是我所拥有的(大多数副本是从Google搜索中粘贴过来的),当我运行它时,它只会打印出0。 我认为我大部分都正确,而且我的问题是我不知道如何读取BYTE变量。 ...

使用GetDIBits()遇到麻烦 - Trouble using GetDIBits()

以下使用GetDIBits()的代码没有给我想要的输出: (gBit.bmp是1366x768位图,完全是白色的。) 我是C ++的新手,几乎不了解如何使用此功能。 我期望对于所有大于或等于0且小于或等于3 * 1366的i,p [i]均为255,因为gBit的每个像素都是白色, ...

位图反转颜色 - bitmap inverted color

前段时间我问了一个关于将hwnd保存到ppm文件的问题。 感谢stackoverflow用户,我已经解决了我的问题。 我的工作正常,但我仍然有一个问题:红色和蓝色是倒置的。 代码和我之前的问题在这里: hwnd到ppm问题 这是位图信息数据: 我用Google搜索,似乎问 ...

归因于ppm问题 - hwnd to ppm issue

我有一个将hwnd保存到ppm文件中的功能。 此功能受msdn示例的启发。 msdn示例和我的函数都可以,但是...我有一个问题... 但首先,这是功能。 所以这是结果图像: http://imageshack.us/photo/my-images/853/test2ne ...

使用BitBlt捕获程序窗口始终返回相同的图像 - Capturing a program window with BitBlt always returns the same image

我编写了以下代码(C ++ Win32)来捕获游戏窗口屏幕并从图像中获取像素颜色数组。 函数autoB()完成这项工作。 然后我将结果数组绘制到我的窗口中,目视检查我得到了什么。 问题是这个程序在我启动计算机后只运行一次,在第一次“缓存”从游戏中获取的第一个截图后,我总是得到相同的 ...

使用GetDIBits访问图像的像素颜色 - Accessing an image's pixel color using GetDIBits

我可以使用GetDIBits加载“当前窗口”的“颜色”内容,但是我不知道如何从某个位置加载图像的颜色。 有人可以告诉我该怎么做吗? 我这样将颜色加载到数组上 我是Windows编程的新手,只想知道如何将图像加载到hdc。 正如雷蒙德(Raymond)所建议的那样,我已经将 ...

使用Windows GetDIBits函数获取位图像素值 - Getting Bitmap pixel values using the Windows GetDIBits function

我正在尝试使用GetDIBits函数获取位图的像素。 由于我没有研究过Windows GDI / API,我对第一个参数HDC非常不确定。 我在SO和网上搜索了无数帖子,但是在这个特定情况下无法找到有关如何初始化HDC的信息或示例。 这是我读取像素值的距离: 解: 在搜索完网 ...

需要与设备无关的位图位 - Need device independent bitmap bits

我正在用C ++构建一个dll,以导入到VB项目中。 该dll公开了一个函数,该函数将通过Win Shell提取指定文档的预览图像,然后将其写入要由VB应用程序使用的缓冲区中。 到目前为止,我能够毫无问题地获得HBITMAP句柄。 我还能够使用GetBitmapBits函数提取位图数据 ...

GetDIBits中的HDC是什么? - What is the HDC for in GetDIBits?

我正在使用GetDIBits将屏幕兼容设备上下文中的位图数据转换为某种格式的DIB。 我的印象是,当源位图为每像素8位或更少时,DC仅用于合成色表。 由于我的源位图是一个完整的32位彩色图像,这是一个一次性的程序,我没有屏幕DC方便,我将HDC参数设置为NULL。 这没用。 一旦我抓住屏 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM