Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Cursor folgt der Farbe


SophieDee - So 07.08.11 11:16
Titel: Cursor folgt der Farbe
Willkommen mir selbst.

zeichnen

Die Aufgabe ist es dem schwarzen Strich zu folgen.

Mausklickbefehle & Mausbewegungen kein Problem aber wie erkennt man eine bestimmte Farbe? & vielleicht kann man auch genaue Postitionsbestimmungen dieser Farbe machen?

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen.


Bergmann89 - So 07.08.11 11:24

Hey,

die Position kann man nicht wirklich bestimmen, aber man kann die Farbe an einer bestimmten Position auslesen. Jetzt musst du nur gucken ob die neue Position auch schwarz ist, wenn nicht musst du anpassen...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  bmp: TBitmap;
  Color: TColor;
begin
  bmp := TBitmap.Create;
  try
    bmp.LoadFromFile('line.bmp');
    Color := bmp.Canvas.Pixels[X, Y];
  finally
    bmp.Free;
  end;


MfG Bergmann


SophieDee - So 07.08.11 11:32

geht das auch ohne die bilddatei einzulesen?

ansonsten könnte man das ja auch als schablone benutzen mit transparenz.

danke für die hilfe.


jaenicke - So 07.08.11 11:50

Ohne Bilddatei? Wo ist der Strich denn zu sehen, wenn nicht in einem Bild auf deinem Formular? :gruebel:
GetPixel gibt es z.B. auch.

Schablone? Heißt das der Strich ist immer gleich?

Nebenbei: Es wäre besser, wenn du Bilddateien usw. hier anhängst. Dann können spätere Leser des Threads auch die Bilder noch abrufen. ;-)


SophieDee - So 07.08.11 12:04

das bild/der strich ist auf einer internetseite. aber ich glaube da geht getpixel nicht.

ne der strich ist nicht immer gleich. aber man könnte ja die grösse eventuell anpassen.


jaenicke - So 07.08.11 12:14

user profile iconSophieDee hat folgendes geschrieben Zum zitierten Posting springen:
das bild/der strich ist auf einer internetseite.
Das liest sich sehr nach einem kleinen Bot für ein Onlinespiel. :?
Falls dem so ist: Derartige Fragen sind hier unerwünscht...

user profile iconSophieDee hat folgendes geschrieben Zum zitierten Posting springen:
aber ich glaube da geht getpixel nicht.
Doch, das sollte gehen. Es sei denn die Seite nutzt Hardwarebeschleunigung oder ähnliches. Aber wenn das eine normale Seite mit z.B. Flash ist, sollte das schon gehen.


HenryHux - So 07.08.11 14:47

Wenn du einer Linie folgen willst, denke ich mal du wirst irgendeinen Browser offen haben, also könntest du ein screenshot von dem machen.
An den kannst du dann mit Berganns Methode gehen.

lg


Bergmann89 - So 07.08.11 16:22

Hey,

muss er/sie ja nichma, weil GetPixel den aktuellen Pixel vom Bildschirm ließt. Da muss man nich den Umweg über ein Screenshot gehen und hat auch wirklich immer den aktuellen Bildschirminhalt.

MfG Bergmann.


jaenicke - So 07.08.11 16:23

GetPixel ist allerdings nicht wirklich schnell, deshalb kann ein vorheriger Screenshot in eine Bitmap und Scanline durchaus sinnvoll sein. Je nachdem wie oft das ganze aufgerufen wird.