簡體   English   中英

在屏幕上繪圖

[英]Drawing on the screen

我目前正在開發一個使用OpenCV的應用程序來對屏幕上的元素進行視覺識別。

雖然不需要過程的直觀表示,但如果我能找到一種直接在屏幕上繪制圓圈,線條和可能的文本而沒有應用程序窗口的方法,則對於調試目的非常有用。

例如,某些應用程序會在屏幕上繪制HUD。 他們如何去做呢?

我需要一種方法讓我的繪畫永遠在前面。 一般來說,我設法找到的所有方法都涉及在窗口上繪畫(WinAPI,Direct2D,OpenGL)。 是否有一種解決方法使它看起來像是桌面上的停留(包括所有打開的窗口)?

為了調試,只需在屏幕上繪制。 IIRC GetDC(0)將為您提供屏幕的設備上下文,但請查看整個系列的功能。 在Windows 7中它甚至沒有弄亂其他應用程序的顯示器,據報道它在mac上同樣“安全”。


例如,這會在屏幕的左上角繪制一個橢圓:

#include <windows.h>

int main()
{
    HDC const dc = GetDC( 0 );
    Ellipse( dc, 10, 10, 200, 200 );
}

如果圖形位於窗口頂部並且該窗口被移動,則圖形將消失。

您可以實現屏幕的設備上下文(DC),並像往常一樣在該DC中繪制。 輸出將定向到屏幕。 要實現這一點,請調用WinApi GetDC("DISPLAY") ,如果我沒弄錯的話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM