Announcement

Collapse
No announcement yet.

Pixelfarbe erkennen danach Mausklick

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pixelfarbe erkennen danach Mausklick

    Hallo zusammen!

    Ich habe schon länger nach einer Lösung für mein Vorhaben gesucht.

    Ganz eifach gesagt: Ich möchte einen bestimmten bereich auf dem Bildschirm anzielen, erkennen ob die farbe ROT oder SCHWARZ ist und dann einen Mausklick an einer bestimmten position ausführen.

    Meine bisherigen versuche ware ein screenshot zu erstellen, um ein pixel auszulesen. Leider sind diese pixelwerte für mich relativ unverständlich.
    hat jemand schon sowas gemacht?

    vielen Dank für eure Hilfe!
    --
    http://www.vic-fontaine.com/

  • #2
    Auch hallo,

    im Grund ist eine Farbe eine Mischung bestimmter RGB-Werte. Einfach 'Rot' oder 'Schwarz' wären eben bestimmte Werte: Rot 255,0,0 Schwarz 255,255,255 (sofern die Werte stimmen ;-) ). Und man kann z.B. Imagemagick verwenden: http://www.codeproject.com/KB/dotnet..._in_VBNET.aspx
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      schwarz 0,0,0
      weiss 255,255,255
      Christian

      Comment


      • #4
        wie gehe ich in meinem fall mit dem Imagemagick um?

        gibt es eine lösung diesen RGB wert eines gewsiien pixels zu bestimmen?

        get pixel liefert keinen RGB wert.
        --
        http://www.vic-fontaine.com/

        Comment


        • #5
          Originally posted by hansdieter View Post
          get pixel liefert keinen RGB wert.
          Häh? Was für eine GetPixel-Methode benutzt du denn? In der SDK-Doku/MSDN finde ich nur Bitmap.GetPixel. Das bedeutet, dass der Bildschirmbereich als Bitmap genommen werden muss und an der Position (x,y) ein Pixel gewählt wird. GetPixel liefert dann eine Color-Struktur, und die enthält unter vielen anderen natürlich die RGB-Werte - was denn sonst?!

          Jürgen

          Comment


          • #6
            mein getpixel wert ist -2171159

            was bedeutet dieser?
            --
            http://www.vic-fontaine.com/

            Comment


            • #7
              den ARGB wert kannst du so auslesen:
              [highlight=vb.net]Dim Bmap As Bitmap
              Me.DrawToBitmap(Bmap, New Rectangle(0, 0, Me.Width, Me.Height))
              Dim Farbe As Color = Color.FromArgb(Bmap.GetPixel(x, y).A, Bmap.GetPixel(x, y).R, Bmap.GetPixel(x, y).G, Bmap.GetPixel(x, y).B)[/highlight]

              lg.
              Zuletzt editiert von Freakstar; 01.04.2009, 20:31.

              Comment


              • #8
                Ah ok vielen dank!

                ich hab enun ein weiteres Problem und zwar

                Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

                MoveMouse(600, 600)
                End Sub

                Private Sub MoveMouse(ByVal x As Long, ByVal y As Long)
                'Deklaration: Lokale Prozedur-Variablen
                Dim udtP As POINTAPI

                udtP.x = CLng(x)
                udtP.y = CLng(y)

                'Mauszeiger versetzen

                SetCursorPos(udtP.x, udtP.y)
                End Sub
                der cursor verschiebt sich leider nur in die X richtung aber nicht in die y richtung ( bleib oben am bildschirm.

                wieso den das?
                --
                http://www.vic-fontaine.com/

                Comment


                • #9
                  Zum Vorschlag von freakstar: Was soll denn dieses Hin und Her? GetPixel liefert Color, der von hansdieter genannte Wert -2171159 ist der int-Wert dieser Color. Die kann man also direkt benutzen und braucht sie nicht in ARGB aufzuteilen und mit FromARGB neu zusammensetzen. Hansdieter hatte eigentlich nach RGB gefragt; also ist das die Lösung (aber so hatte ich es ja schon geschrieben):
                  [highlight=vbnet]Dim Farbe As Color = Bmap.GetPixel(x, y)
                  Dim r As Int32 = Farbe.R[/highlight]

                  Zum neuen Problem:

                  Was hat dieses Problem zu tun mit "Pixelfarbe erkennen"? Neues Problem => neues Thema.

                  Es gibt den #-Button für Code und highlight=vbnet für VB-Code. Zitate sind Zitate, was denn sonst?

                  Jürgen
                  Zuletzt editiert von Jürgen Thomas; 02.04.2009, 09:11.

                  Comment

                  Working...
                  X