Frage

Weiß jemand, wie man Effekte auf den gesamten Bildschirm, in C# oder in einer Programmiersprache anwendet? Ich bin hauptsächlich daran interessiert, das Bildschirm monochrom zu machen (speziell grün-weiß anstelle von schwarzem Weiß).

Ich weiß, dass eine intergraphische Kartenlösung möglich ist, weil ich ein Programm gefunden habe, das es kann:http://www.freedomscientific.com/products/lv/magic-bl-product-page.asp

Weiß jemand, wie man etwas so oder wo man aussehen kann?

Vielen Dank !!

War es hilfreich?

Lösung

Es gibt keine einfache Windows -API, um den gesamten Bildschirminhalt zu ändern. Dies könnte jedoch auf der Ebene der Gerätetreiber geschehen.

Andernfalls müssen Sie auf einige Windows -API -Tricks zurückgreifen: Platzieren Sie ein "gefälschtes" Fenster über den gesamten Desktop, in einer Schleife: Schnappen Sie sich den gesamten Bildschirminhalt, ohne gefälschte Fensterinhalte zu greifen, Ihre Verarbeitung, um den monochromen Effekt zu erhalten, und zeigen Sie diesen auf das falsche Fenster. Ja, es ist hackig und langsam, aber möglich. Noch hackiger, wenn Sie Mausklicks zum "Durchgehen" des falschen Fensters erhalten (viele von SetWindowsRgn Anrufe).

Plattformüberschreitende hier bedeutet also, GDI zu verwenden, obwohl einige ältere DirectDraw-APIs möglicherweise funktionieren. In diesem Fall haben Sie mit Hardware-Overlays (und einer besseren Leistung) viel einfacher. Ich bin mir jedoch nicht sicher, wie viele Karten Hardware -Overlays tatsächlich unterstützen und ob neuere Versionen von Windows die älteren DirectDraw -APIs unterstützen.

Eine weitere Möglichkeit besteht darin, wenn die Grafikkarte über eine C# oder C ++ oder C API verfügt, können Sie mit der Karte alles tun, ohne den Geräte -Treibercode zu schreiben.

Dann ist da noch Cuda, aber ich habe das noch nicht ausprobiert. Ich weiß, dass es für die Stream -Verarbeitung auf NVIDIA -Boards dient, aber ich frage mich, ob Sie eine einfache Hintertür in das Video -Display -Sachen bringen könnten.

Andere Tipps

Menschen in Zukunft zu helfen, die daran interessiert sind:

Dies ist mit dem möglich Vergrößerungs -API -Farb -Effekt -Methode. Auf diese Weise kann man eine Matrix verwenden, die auf den gesamten Bildschirm angewendet werden kann.

Negativscreen ist ein Open -Source -Projekt, das die in C#beschriebene Funktion implementiert.

Leider funktioniert dies nur mit affine Transformationen, da die API nur eine erweiterte Matrizen und nicht mit einem Delegierten oder so etwas nimmt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top