[英]Screen capture to Direct2D compatible bitmap
我需要在給定其HWND
句柄的情況下捕獲窗口的屏幕並將捕獲存儲在ID2D1Bitmap
對象中,以便通過我的渲染目標繪制此位圖。
我怎么能得到這個結果?
Direct2D不提供此類功能。
一種可能的方法是首先通過GDI
(1)捕獲屏幕,然后從返回的位圖句柄(2)創建ID2D1Bitmap
。
獲得HBITMAP
- 請檢查此答案: https : //stackoverflow.com/a/5164267/3962893 。 你需要的部件直到HBITMAP hbDesktop = CreateCompatibleBitmap( hdc, width, height);
hbDesktop
變量將包含屏幕捕獲位圖的句柄。
從HBITMAP
創建ID2D1Bitmap
- 請檢查以下答案: https : ID2D1Bitmap
。 它將圖標復制到ID2D1Bitmap
,但工作流程完全相同。 除了:
hIcon := SendMessage(Handle, WM_GETICON, ICON_BIG, 0); .... wicFactory.CreateBitmapFromHICON(hIcon, wicBitmap);
你必須改為:
wicFactory.CreateBitmapFromHBITMAP(hbDesktop, wicBitmap);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.