有誰知道如何將效果應用於整個屏幕,使用C#或任何編程語言。 我最感興趣的是使屏幕變成單色(特別是綠白色而不是黑白色)。製作整個屏幕單色和其他全屏效果
我知道一個跨圖形卡解決方案是可能的,因爲我發現了一個程序,可以做到這一點: http://www.freedomscientific.com/products/lv/magic-bl-product-page.asp
任何人知道如何做到這事還是在哪裏看?
謝謝!
有誰知道如何將效果應用於整個屏幕,使用C#或任何編程語言。 我最感興趣的是使屏幕變成單色(特別是綠白色而不是黑白色)。製作整個屏幕單色和其他全屏效果
我知道一個跨圖形卡解決方案是可能的,因爲我發現了一個程序,可以做到這一點: http://www.freedomscientific.com/products/lv/magic-bl-product-page.asp
任何人知道如何做到這事還是在哪裏看?
謝謝!
沒有簡單的Windows API來修改整個屏幕內容。但是這可以在設備驅動程序級別完成。
否則,你不得不求助於一些Windows API技巧:在整個桌面上放置一個「假」窗口,在一個循環中:抓住整個屏幕內容而不抓住假窗口的內容,進行處理以獲得單色效果,然後在假窗口上顯示。是的,它很爛,很慢,但可能。更棘手的是,當你點擊鼠標來「穿過」假窗口(很多SetWindowsRgn
調用)。
因此,這裏的跨平臺意味着使用GDI,儘管一些較老的DirectDraw API可能工作,在這種情況下,硬件覆蓋更容易(並且性能更好)。雖然我不確定有多少卡實際上支持硬件覆蓋,並且如果較新版本的Windows支持較早的DirectDraw API。
另外一種可能性是,如果顯卡具有C#或C++或C API,那麼您可以在不寫設備驅動程序代碼的情況下使用卡做任何事情。
然後是CUDA,但我還沒有嘗試過。我知道這是在nVidia主板上進行流處理,但我不知道它是否能夠讓你輕鬆進入視頻顯示的後門。
爲了幫助人們在未來誰對這個感興趣:
這是可能的Magnification API's color effect method。這允許使用可應用於整個屏幕的矩陣。
NegativeScreen是一個開源項目,實現您在C#中描述的功能。
不幸的是,這隻適用於仿射變換,因爲API只需要增強矩陣而不是委託或其他東西。
是什麼讓你認爲你鏈接的軟件是*跨平臺*?我只能看到各種Windows版本的參考。 – thkala 2011-01-27 20:17:35
我站好了。我的意思是它可以在不同版本的Windows上運行,跨平臺的配置很差。 – Dyte 2011-01-27 20:36:41