bitblt相关内容

如何正确截屏 Aero/DWM 上的特定窗口

背景信息:我有这个我编写并使用了很长时间的 MFC 应用程序,当用户点击 Print Screen/Alt+Print Screen 键时,它几乎会自动将屏幕截图保存到硬盘上.直到现在我已经使用 Windows 7 RC 几周了,我一直在推迟使用与 Aero 相关的任何东西. 问题:我正在使用标准的 GetDC/BitBlt 方法来捕获窗口内容.在进行常规全屏抓取时(无论打开多少个窗口等), ..
发布时间:2022-01-12 15:08:41 C/C++开发

使用 BitBlt 捕获程序窗口总是返回相同的图像

我编写了以下代码(C++ Win32)来捕获游戏窗口屏幕并从图像中获取像素颜色数组.函数 autoB() 完成这项工作. 然后我将结果数组绘制到我的窗口中,以直观地检查我得到了什么. 问题是这个程序在我启动计算机后只运行一次,在第一次“缓存"从游戏中截取的第一个屏幕截图后,我总是得到相同的像素数组.即使我关闭并重新启动程序,我也会得到相同的屏幕截图. 游戏没有使用 DirectX ..
发布时间:2021-09-25 19:09:53 C/C++开发

使用 BitBlt 捕捉桌面像素颜色

现在我正在使用 GetPixel() 从桌面检索大约 64 个像素以获得它们的颜色.我读到 GetPixel() 很慢,但不认为它对几个像素有影响,但每次运行例程需要 1.5 秒.在做了一些研究之后,我得出结论,bitblt 似乎是我正在寻找的.我想要做的是抓取桌面的定义区域(包括所有窗口),然后抓取给定偏移量的像素颜色.这是我现在正在做的: for (y=0;y } 我找到了大量的教 ..
发布时间:2021-09-25 19:05:57 其他开发

使用BitBlt截屏,如何?

我在搜索中不时遇到这个“BitBlt",但我不知道如何使用它. 据人们所说,这似乎是捕获 Windows 显示的屏幕的最快方法.但是,我自己不能说任何事情,因为我没有让它工作. 我唯一设法至少尝试的方法是: gfxBmp.CopyFromScreen(0,0,0,0 rc.Size,CopyPixelOperation.CaptureBlt); 我猜是哪个用的?(rc.size ..
发布时间:2021-06-21 19:21:50 C#/.NET

光标消失在bitblt上

我有一个Windows应用程序,该应用程序从屏幕上抓取像素以进行录制(以视频的形式)为自定义屏幕共享格式.问题是,在使用软件光标的计算机上,使用SRCCOPY | CAPTUREBLIT从屏幕上发亮(以便分层的窗口也显示在图像中),导致光标闪烁,如 ..
发布时间:2021-04-27 20:29:55 其他开发

使用BitBlt截屏在Windows 10上显示黑色图像

我正在使用下面的代码来捕获当前活动窗口的屏幕截图.此代码来自捕获屏幕截图,包括.NET中的半透明窗口,一些小的补充,即它使用GetForegroundWindow和一个计时器,以便我可以选择所需的窗口. 在Windows 10(x64)上,此功能可在Firefox浏览器上正常运行,但不适用于Chrome或Edge. 我感到奇怪的是, 在SharpDevelop 5.1中运行它 ..
发布时间:2021-04-18 20:26:14 C#/.NET

获得RGBA的BITMAPV5HEADER使A保持为255

我通过以下方式获取屏幕快照的字节数组,这是在ctypes中完成的,ctypes没有问题,如果我给它一个ctypes标签,那么ctypes会被人们弄糊涂,所以我简化了所有错误检查等,以向您显示该过程. CreateDC('DISPLAY', null, null, null); nWidth = GetDeviceCaps(hdcScreen, HORZRES); // 1280 // nu ..
发布时间:2020-11-13 02:17:39 其他开发

是否可以直接从GDI +位图生成BitBlt?

是否可以使用BitBlt直接复制出GDI +位图而不使用GetHBitmap? GetHBitmap较慢,因为除了BitBlt副本之外,它还制作了整个映像的新副本,并且速度比BitBlt副本慢,并且必须处理给定的HBITMAP.图片很大. 是否有一种方法可以指向BitBlt以使用原始GDI +图像的像素数据? 编辑:我可以找到GDI +位图像素数据在内存中的位置的指针.我可以创建 ..
发布时间:2020-11-13 02:09:43 其他开发

在C#中使用BitBlt捕获的屏幕截图在Windows 10上显示黑色图像

在c#中使用 BitBlt 捕获的屏幕截图在 Windows 10 上显示黑色图像.请帮我解决这个问题. 屏幕截图是Chrome(启用硬件加速模式时)和IE/Edge窗口的黑色图像. 当硬件加速模式为ON时,仅Edge,Windows 10中的IE浏览器窗口和Chrome浏览器窗口的输出图像为黑色.除了透明窗口截图以外的所有其他窗口都是不错的选择. 这是代码: const ..
发布时间:2020-07-14 04:36:29 C#/.NET

隐藏窗口的PrintWindow和BitBlt

我的程序正在拍摄其他应用程序窗口的屏幕快照,以自动执行它们上的某些任务.这些窗口可能会隐藏在屏幕外,或者不时被其他窗口遮盖. 为了减少混乱,我从代码清单中删除了所有错误检查.我正在准备两种类型的屏幕截图 // Get size of the target window. RECT clientRect; GetClientRect(hwnd, &clientRect); int wid ..
发布时间:2020-06-13 18:32:13 C/C++开发

屏幕截图(PIL)ImageGrab.grab/Win10上的BitBlt仅返回背景吗?

我在Windows 10上遇到了一个大问题,通常我使用PIL(Python)从程序内部获取漂亮干净的屏幕截图. 但是对于Windows 10来说,它不再起作用了,现在我只能成为桌面上的所有内容,但是我的全屏窗口却不见了. 我也尝试使用: BitBlt(screen_copy, 0, 0, width, height, screen, left, top, SRCCOPY | CA ..
发布时间:2020-05-27 21:13:47 Python

Windows 10版本1703(15063.138)上的bitblt失败

使用Visual Studio 2017,vc141,以下代码应从游戏前窗口获取屏幕截图,但现在它返回黑白图像. 游戏的唯一问题(尝试过OpenGL和Vulkan,ogl返回黑色,vulkan返回白色) 在升级到Windows 10 1703之前,它可以在Windows 10 1607和Windows 7 sp1上工作 #include ..
发布时间:2020-05-20 20:53:31 C/C++开发

如何正确截屏Aero/DWM上的特定窗口

背景信息: 我已经编写并使用了很长时间的MFC应用程序,当用户按下“打印屏幕"/"Alt +打印屏幕"键时,它几乎自动将屏幕截图保存到硬盘上.直到现在我已经使用Windows 7 RC几周了,我才开始推迟使用与Aero相关的任何功能. 问题: 我正在使用标准的GetDC/BitBlt方法来捕获窗口内容.在进行常规的全屏抓取(无论打开了多少窗口等)时,此方法都没有问题.当我尝试捕获前景窗口(A ..
发布时间:2020-05-09 19:23:00 C/C++开发

裁剪函数BitBlt(...)

我想在现有引擎中创建裁剪功能。这是我已经有了: bool Bitmap :: Crop(RECT cropArea) { BITMAP bm; GetObject(m_Handle,sizeof(bm),& bm); HDC hSrc = CreateCompatibleDC(NULL); SelectObject(hSrc,m_Handle); HDC hNe ..
发布时间:2016-10-20 22:29:52 C/C++开发

获取像素颜色最快的方式?

我想为Windows应用程式建立自动订阅者。它工作得很好,但它是非常慢! 我目前使用的方法“getPixel”每次调用时重新加载数组。 这是我当前的代码: hdc = GetDC(HWND_DESKTOP); bx = GetSystemMetrics(SM_CXSCREEN); by = GetSystemMetrics(SM_CYSCREEN); start_bx ..
发布时间:2016-10-16 14:36:08 C/C++开发