Entwickler-Ecke
Sonstiges (Delphi) - Farbbereiche Filtern
Desty - So 24.09.06 12:29
Titel: Farbbereiche Filtern
Hallo,
hätt da mal ein kleines Problem, hopffe ihr könnt mir helfen. Wie ich einzelne Farbwerte in Delphi filtere ist kein Problem, bloß gibt es eine einfache Variante das auf einem schwarzen Hintergrund keine dunklen Farben angewand werden können (als Beispiel!)?
Danke schonmal im vorraus für eure Hilfe :-)
Chryzler - So 24.09.06 13:14
Wenn ich dich richtig verstanden habe:
Du musst halt alle Pixel des Bildes durchgehen, und schauen ob eine Bedingung zutrifft. Hier zum Beispiel, dass die Farbe nicht zu dunkel ist.
Desty - So 24.09.06 13:52
Chryzler hat folgendes geschrieben: |
Wenn ich dich richtig verstanden habe:
Du musst halt alle Pixel des Bildes durchgehen, und schauen ob eine Bedingung zutrifft. Hier zum Beispiel, dass die Farbe nicht zu dunkel ist. |
Das Problem ist halt das ich einen Hintergrund (zum Beispiel schwarz) habe und nun auch Farbe wie dunkles braun herrausgefiltert werden sollen...Ich kann ja schließlich nicht alle Pixel auf alle dunklen Farben überprüfen :-)
Marco D. - So 24.09.06 15:19
Desty hat folgendes geschrieben: |
Chryzler hat folgendes geschrieben: | Wenn ich dich richtig verstanden habe:
Du musst halt alle Pixel des Bildes durchgehen, und schauen ob eine Bedingung zutrifft. Hier zum Beispiel, dass die Farbe nicht zu dunkel ist. |
Das Problem ist halt das ich einen Hintergrund (zum Beispiel schwarz) habe und nun auch Farbe wie dunkles braun herrausgefiltert werden sollen...Ich kann ja schließlich nicht alle Pixel auf alle dunklen Farben überprüfen :-) |
Wie definierst du denn "dunkle Farbe"?
Chryzler - So 24.09.06 20:08
Marco D. hat folgendes geschrieben: |
Desty hat folgendes geschrieben: | Chryzler hat folgendes geschrieben: | Wenn ich dich richtig verstanden habe:
Du musst halt alle Pixel des Bildes durchgehen, und schauen ob eine Bedingung zutrifft. Hier zum Beispiel, dass die Farbe nicht zu dunkel ist. |
Das Problem ist halt das ich einen Hintergrund (zum Beispiel schwarz) habe und nun auch Farbe wie dunkles braun herrausgefiltert werden sollen...Ich kann ja schließlich nicht alle Pixel auf alle dunklen Farben überprüfen :-) |
Wie definierst du denn "dunkle Farbe"? |
Wenn der Rot-, Grün-, und Blauanteil einer Farbe unter, sagen wir mal, 40 liegt.
Desty hat folgendes geschrieben: |
Chryzler hat folgendes geschrieben: | Wenn ich dich richtig verstanden habe:
Du musst halt alle Pixel des Bildes durchgehen, und schauen ob eine Bedingung zutrifft. Hier zum Beispiel, dass die Farbe nicht zu dunkel ist. |
Das Problem ist halt das ich einen Hintergrund (zum Beispiel schwarz) habe und nun auch Farbe wie dunkles braun herrausgefiltert werden sollen...Ich kann ja schließlich nicht alle Pixel auf alle dunklen Farben überprüfen :-) |
Wieso denn nicht? Du holst dir von jedem Pixel die einzelnen RGB Werte, und schaust, ob alle drei Werte unter, z.B. 40 sind. Wenn ja, dann ist die Farbe dunkel.
Chryzler - So 24.09.06 20:16
Und weil mir gerade so langweilig war, hab ich dir das hier noch geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| function IsDark(Color: TColor; Threshold: Byte): Boolean; begin result := (GetRValue(Color) <= Threshold) and (GetGValue(Color) <= Threshold) and (GetBValue(Color) <= Threshold); end; |
Jetzt musst du nur noch in einer Scanline-Schleif jeden Pixel durchlaufen, die IsDark-Funktion aufrufen, und dementsprechend rausfiltern.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!