vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · Bilder und Icons   |   VB-Versionen: VB2005, VB200825.04.08
Farbe unter dem Mauszeiger zurückgeben

Das Beispiel ermöglicht die Position des Mauszeigers, sowie die Farbe des Pixels, über dem sich der Mauszeiger befindet, zurückzugeben.

Autor:   Heinz PrelleBewertung:  Views:  11.634 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Heute stellen wir Ihnen eine Klasse vor, mit der sich die Farbe des Bild-Pixels einer PictureBox, über dem sich der Mauszeiger befindet, zurückgeben lässt.

Erstellen Sie hierzu ein neues Windows-Forms Projekt, platzieren auf die Form eine PictureBox und weisen dieser eine beliebige Bilddatei zu. Platzieren Sie jetzt noch zwei Label-Controls unterhalb der PictureBox (Label1 und Label2).

Public Class Form1
  ''' <summary>
  ''' Farbwert unter dem Mauszeiger ermitteln
  ''' </summary>
  Public Class GetColorFromPoint
 
    ''' <summary>
    ''' Funktion zur Ermittlung der Farbe unter dem Mauszeiger
    ''' </summary>
    ''' <param name="pb">Die PictureBox mit Bild/Grafik</param>
    ''' <returns>Den ermittelten Farbwert</returns>
    Public Shared Function GetColor(ByVal pb As System.Windows.Forms.PictureBox, _
      ByVal e As System.Windows.Forms.MouseEventArgs, _
      ByRef Position As Point) As Color
 
      ' Bitmap Objekt
      Dim hBitmap As Bitmap = Nothing
 
      ' Fehlerüberwachung einschalten
      Try
        ' Variable hBitmap initialisieren
        hBitmap = New Bitmap(1, 1)
 
        ' Nutzung der Grafikklasse
        Using g As Graphics = Graphics.FromImage(hBitmap)
          With g
            ' Transfer der benötigten Daten
            .CopyFromScreen(pb.PointToScreen(e.Location), New Point(0, 0), hBitmap.Size)
            ' Wert der Position des Mauszeigers an die Variable Position übergeben
            Position = e.Location()
            ' Übergabe an die Variable Color
            Dim Color As Color = hBitmap.GetPixel(0, 0)
            ' Rückgabe des ermittelten Farbwertes
            Return Color
          End With
        End Using
      Catch ex As Exception
        ' Eventuell auftretenden Fehler abfangen und
        ' Fehlermeldung ausgeben
        MessageBox.Show(ex.Message.ToString(), "Info")
      Finally
        ' Resourcen freigeben
        If hBitmap IsNot Nothing Then hBitmap.Dispose()
      End Try
    End Function
  End Class
  Private Sub PictureBox1_MouseMove(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
 
    ' Fehlerüberwachung einschalten
    Try
      ' Positionsvariable deklarieren
      Dim p As Point = Nothing
      ' Benötigten Wert aus der Funktion GetColor holen
      Dim Color As Color = GetColorFromPoint.GetColor(PictureBox1, e, p)
      ' Farbwert zum Test an das Label als neue Hintergrundfarbe übergeben
      Label1.BackColor = Color
      ' Positionsvariable auswerten
      Label2.Text = "Position: " & p.X.ToString() & " - " & p.Y.ToString()
    Catch ex As Exception
      ' Eventuell auftretenden Fehler abfangen und
      ' Fehlermeldung ausgeben
      MessageBox.Show(ex.Message.ToString(), "Info")
    End Try
  End Sub
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    Label1.AutoSize = False
    Label1.Width = 30
    Label1.Height = 12
  End Sub
End Class



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2019 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.