Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 06:29

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Durchschnittsfarbe eines Bildschirmausschnitts

Discussion on Durchschnittsfarbe eines Bildschirmausschnitts within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2005
Posts: 201
Received Thanks: 23
Durchschnittsfarbe eines Bildschirmausschnitts

Moin moin,

ich bin zur Zeit dabei ein Ambilight für meinen Pc zu bauen.
Das funktioniert auch schon ganz gut. Aber das Errechnen der Durchschnittsfarbe eines Bildschirmausschnitts dauert viel zu lange.
Selbst wenn ich nur jeden 20ten Pixel prüfe dauert es noch 40-50ms für 4 Bildausschnitte mit der Größe 200*800. Das ist leider zu langsam um eine Verzögerungsfreie Farbänderung der Lampen zu erreichen. Die Farbe der Lampen lagt immer ein bisschen hinterher, das sieht ziemlich scheiße aus
Im Moment errechne ich die Farbe relativ simpel:
Es werden die r,g und b Werte jedes xten Pixels addiert und am ende durch die Anzahl der Pixel geteilt.
Die Farbwerte hole ich momentan mit der WinApi Funktion GetPixel.
Nun ist die Frage, gibt es irgendeinen schnelleren mathematischen Weg die Durchschnittsfarbe zu berechnen?
Gibt es einen schnelleren Weg an die Pixel zu kommen? Vielleicht schon bevor sie angezeigt werden?


Für alle die sich unter einem Ambilight nichts vorstellen können:

mondesser is offline  
Old 06/12/2008, 18:58   #2
 
mr.rattlz's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
Das würde _eventuell_ etwas schneller gehen, wenn du einen Screenshot erstellst (im Speicher) und dann auf den Speicherbereich ohne Umschweife über irgendwelche Funktionen zugreifst. Das Ganze dann noch Geschwindigkeitsoptimiert und dein nächstes Problem wird dann sein wie du eine Kopie des Bildschirminhalts in möglichst geringer Zeit bekommst.
mr.rattlz is offline  
Old 06/12/2008, 19:15   #3
 
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
Dann müsste er aber ziemlich viele screenshots erstellen, was dazu führt, dass es wahrscheinlich noch langsamer wird und der arbeitsspeicher extrem überfüllt wird.
wadimwadim is offline  
Old 06/12/2008, 19:41   #4
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Einen Screenshot vom gesamten Bildschirm zu erstellen dauert unter Windows lange (~ 50 ms), deshalb immer kleine Teile des Bildschirms kopieren. (~ 15 ms)

Wie lange die Berechnung jetzt dauert kann ich nicht genau sagen, ist aber eine Moeglichkeit.
rEdoX is offline  
Old 06/12/2008, 19:56   #5
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,153
wie währe es nur den außenbereich einzulesen? hab zwar auf die schnelle kein beispiel parat, aber das währe doch eine idee?
reijin is offline  
Old 06/12/2008, 20:10   #6
 
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
Quote:
wie währe es nur den außenbereich einzulesen? hab zwar auf die schnelle kein beispiel parat, aber das währe doch eine idee?
GUT, vielleicht noch den Bildschirm in 4 Teile aufteilen, dann wäre die ganze Sache noch etwas genauer.
wadimwadim is offline  
Old 06/12/2008, 20:10   #7
 
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
Quote:
wie währe es nur den außenbereich einzulesen? hab zwar auf die schnelle kein beispiel parat, aber das währe doch eine idee?
GUT, vielleicht noch den Bildschirm in 4 Teile aufteilen, dann wäre die ganze Sache noch etwas genauer.
wadimwadim is offline  
Old 06/13/2008, 11:36   #8
 
elite*gold: 0
Join Date: Oct 2005
Posts: 201
Received Thanks: 23
Quote:
Originally Posted by wadimwadim View Post
GUT, vielleicht noch den Bildschirm in 4 Teile aufteilen, dann wäre die ganze Sache noch etwas genauer.
Ich lese nur die Außenbereiche, deswegen ja 4 Ausschnitte á 200*800 pixel.

Habe überlegt, ob es möglich ist, direkt auf den Graka Buffer zuzugreifen und dort den gerade dargestellten Frame abzugreifen? Das währe quasi das Selbe, als wenn ich ein Screenshot erstelle und dann im Speicher darauf zugreife. Nur ohne das ich ein Screenshot erstellen muss. Dann bin ich nur wieder auf einer sehr systemnahen Ebene, was ich eigentlich vermeiden wollte.
mondesser is offline  
Old 06/21/2008, 21:27   #9
 
elite*gold: 0
Join Date: Feb 2007
Posts: 107
Received Thanks: 4
Ja das wär schon besser und um einiges schneller weil die Daten erreichen CPU/Ram zumindest was Darstellung angeht um einiges später als die Graka -> Kabel zum Monitor.

Es sollte möglich sein die Daten kurz bevor die die Graka verlassen zum Kabel abzufangen und es daraus zu berechnen. (ähnlich wie Programme die HD Filme vom Kopierschutz befreien)
Hab aber kein Plan wie man das umsetzen kann aber die Idee könnte ja eventuel weiter helfen.
Arhey is offline  
Old 06/23/2008, 16:58   #10
 
elite*gold: 0
Join Date: Oct 2005
Posts: 201
Received Thanks: 23
Joa, bin im Moment noch dabei die Hardware neu zu machen, hatte keine Lust mehr auf Kabelsalat, also versuche ich mich an richtigen Platinen ^^ Danach werd ich dann versuchen den FrontBuffer auszulesen.
mondesser is offline  
Reply


Similar Threads Similar Threads
Wertschätzung eines Acc
08/19/2010 - Metin2 Trading - 12 Replies
ja hallo ich möchte meinen acc verkaufen aber weis net wie viel er wert is frage deshalb nach möchte PSC haben und auch über middleman handeln ja hier is der acc mit dem dazugehörigem char Rasse: Krieger Lehre: Körper Level: 66 Pferd: Millitär Pferd Derzeitige Biologenquest: Alle erfüllt Charakter Status: Vit: 90
de exe eines p servers
11/14/2009 - Metin2 Private Server - 1 Replies
hallo, kann mir bitte wer den dl link zu einer deutschen exe von z.B.wingm oder metin35 schicken gibt auch ein thx
Überwachung eines PCs
11/10/2008 - Main - 17 Replies
Hallo liebe elitepvpers-Community! Ich würde gerne von meinem PC aus überwachen können, was meine Tochter auf ihrem PC macht. Wir sind beide an den selben Router angeschlossen, ich denke von daher ist das leicht möglich. Gibt es bestimmte Programme die dafür geeignet sind? Google lieferte mir nicht sehr viele gute Ergebnisse. Danke im vorraus!



All times are GMT +1. The time now is 06:30.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.