AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Bestimmte Farbe auf dem Desktop suchen

Ein Thema von speedy · begonnen am 20. Mai 2011 · letzter Beitrag vom 20. Mai 2011
Antwort Antwort
speedy

Registriert seit: 19. Sep 2003
55 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 11:52
Das ist der verwendete Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var cx1, cy1, cx2, cy2, buffer : integer;
    dc : hdc;
begin
  dc := createdc('DISPLAY',nil,nil,nil);
  cy1 := strtoint(edit2.Text); //start y
  cx2 := strtoint(edit3.Text); //ende x
  cy2 := strtoint(edit4.Text); //ende y
  while cy1 < cy2 do
    begin
      cx1 := strtoint(edit1.Text); //start x
      while cx1 < cx2 do
        begin
          buffer := getpixel(dc,cx1,cy1);
          cx1 := cx1 + 1;
          if (buffer > 2300000) and (buffer < 2400000) then memo1.Lines.Add(inttostr(cx1)+' '+inttostr(cy1)); //genauer wert: 2302444
        end;
      memo1.Lines.Add('zeile '+inttostr(cy1)); //nur zum testen
      cy1 := cy1 + 3; //3 zeilen weiter springen
    end;
end;


Das seltsame ist auch, dass die CPU Auslastung gerade mal um 5 - 8 % ansteigt während er arbeitet.

Werde dann mal die Methode mit Scanline testen...

Gruß
speedy

Geändert von speedy (20. Mai 2011 um 11:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:21
Dein Buffer ist ein Farbwert vom Typ TColor. Da liegen die Farben im Hex-Format ala $00RRGGBB (RR = Rot, GG = Grün, BB = Blau) drin. Deine Bereichsprüfung findet jetzt nicht nur Stellen, wo deine gewünschte Farbe drin ist, sondern auch noch alle stellen, die etwas mehr oder weniger Blau haben und weil dein Bereich so groß ist, darf sich der Wert von Grün auch noch dramatisch ändern und es fällt durch.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:30
War das nicht anders herum (BGR)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.359 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:31
RGB stimmt.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#5

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:33
Dann bin ich farbenblind.
Delphi-Quellcode:
procedure TForm5.FormCreate(Sender: TObject);
begin
  Color := $00FF0000; //wäre demnach reines Rot
end;
Mein Formular wird aber blau.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#6

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:42
@Detlef:
RGB war schon richtig. Du hast 2 Nullen zuviel!
So wird es richtig (grün)

Color := $00FF00;
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix (20. Mai 2011 um 12:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 12:45
Natürlich wird das grün, wenn ich bei 3 Teilen die beiden äußeren tausche und danach auf den mittleren zugreife
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 13:04
Kann es sein, dass die Endianness wieder mal verwirrend zugeschlagen hat?
Code:
Speicher (LOW ... HIGH):
0xRR | 0xGG | 0xBB | 0x00

Als Little-Endian-Integer:
0x00BBGGRR
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#9

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 13:07
Jepp, das kann einen manchmal in den Wahnsinn treiben
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Bestimmte Farbe auf dem Desktop suchen

  Alt 20. Mai 2011, 17:31
Kann es sein, dass die Endianness wieder mal verwirrend zugeschlagen hat?
Code:
Speicher (LOW ... HIGH):
0xRR | 0xGG | 0xBB | 0x00

Als Little-Endian-Integer:
0x00BBGGRR
Pappalapapp!
Das hat doch nichts mit Endianness zu tun
Wenn man sagt, R steht - jetzt im Zehnersystem - an der Einserstelle, G an der Zehnerstelle und B an der Hunderterstelle, dann schreibt mans genauso an: 321:
R = 1
G = 2
B = 3

Genauso verhält es sich mit HEX
R steht an erster Stelle (Einserstelle), G an Sechtzehnerstelle, B an der 256'er Stelle!
Thus BGR!
Endianness hat nichts damit zu tun
Hier zumindest nicht!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz