屏幕捕获到Direct2D兼容位图
Screen capture to Direct2D compatible bitmap
我需要捕获给定HWND
句柄的窗口的屏幕,并将捕获存储在ID2D1Bitmap
对象中,以便通过渲染目标绘制此位图。
我怎样才能得到这个结果?
Direct2D不提供此类功能。
一种可能的方法是,首先通过GDI
(1)捕获屏幕,然后根据返回的位图句柄创建ID2D1Bitmap
(2)。
-
获取
HBITMAP
-检查此答案:https://stackoverflow.com/a/5164267/3962893.您需要该部分直到HBITMAP hbDesktop = CreateCompatibleBitmap( hdc, width, height);
。hbDesktop
变量将包含屏幕捕获位图的句柄。 -
从
HBITMAP
创建ID2D1Bitmap
-检查此答案:https://stackoverflow.com/a/27500938/3962893.它将图标复制到ID2D1Bitmap
,但工作流是相同的。除:hIcon := SendMessage(Handle, WM_GETICON, ICON_BIG, 0); .... wicFactory.CreateBitmapFromHICON(hIcon, wicBitmap);
您必须更改为:
wicFactory.CreateBitmapFromHBITMAP(hbDesktop, wicBitmap);
相关文章:
- C / C++ 移位/偏移/向左或向右移动位图?
- 如何在快板的屏幕中显示子位图的绘制?
- CreateDIBSection为同一图像返回不一致的位图位值
- C++ 位图中的 ttc 字体
- 使用 GDI+ 旋转位图,然后转换为 HDC
- 难以从 CImageList 设置菜单项位图
- 如何将位图拉伸到父面板(wxWidgets 自定义)
- 如何使用 freetype2 访问单色位图中的像素状态
- 将位图 (bmp) 转换为具有透明度的 png (Windows c++)
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 位图到垫子/2D 数组
- Gdiplus位图没有Alpha通道
- 如何从路径字符串加载Gdiplus::位图
- 在C++中使用Gdiplus创建透明位图
- 屏幕捕获到Direct2D兼容位图
- 如何防止或关闭位图的 direct2d"自动缩放"?
- 如何在Direct2D中创建透明位图
- 使用Direct2D渲染位图的一部分
- 使用 direct2d 创建位图图集,"current bitmap"指的是什么?
- Direct2D - 模拟彩色键控透明位图