Hi,
ich möchte folgendes realisieren:
Ich habe in ein Bild in eine pictureBox geladen. Nun möchte ich, dass wenn der Anwender auf irgendeine Stelle des Bildes klickt, dass eine MessageBox erscheint, die ihm die genauen Werte für Alpha, Red, Green und Blue anzeigt. Habe mir dafür eine MouseEventHandler für die PictureBox erstellt, weiß nun aber nicht, wie ich den Wert das Pixels auslesen kann, auf den ich geklickt habe.
private void pictureBox4_Click(object sender, MouseEventArgs e)
{
// Was kommt hier hinein?
}
Ich habe schon nach Funktionen gesucht, die mir den Wert eines Pixels ausgeben könnne, bin aber leider nicht fündig geworden.
Also vielen Dank schonmal für eure Hilfe!
Hallo sevo,
((Bitmap)pictureBox4.Image).GetPixel (...)
herbivore
PS: Vermutlich musst du MouseDown und nicht Click verwenden, um an die Koordinaten des Clicks zu kommen.
@herbivore das geht aber nur wenn das bild in der pic_box nicht verzerrt ist sondern in original größe dargestellt wird !!
an sonsten kanst du das über nen screenshot machen: Capture a Screen Shot
MfG janismac
Danke! 👍
Hat bestens geklappt und ja, ich habe MouseDown verwendet anstatt Click.
hättest auch Click nehmen können, und die Koordinaten dann wandeln mit "PointToClient"
@Janismac:
Eine weitere Möglichkeit ist über einen sogenannten
Eye-Dropper
Quasi den Pixel über den Desktop ermitteln ohne einen Screenshot zu machen.
s. auch:
EDIT: Anmerkung: Dieser reagiert dann natürlich auf ALLE pixel auf dem Screen.
@sevo:
Ansonsten muss eine Umrechnungsroutine programmiert werden, wie Janismac schon
richtig die Richtung gezeigt hat. Denn wenn verzerrt bzw. skaliert angezeigt wird, wirst Du sonst nicht das richtige Pixel unter dem Mauszeiger bekommen.
Ganz andere Alternative: Eingabe per Control und nicht den Mauszeiger mit Klick-Koordinaten benutzen. Ist aber eben meist nicht so komfortabel
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
Hallo Leute,
ich habe ein Zeichen Programm geschrieben und arbeite mit GetPixel.
Leider habe ich fest gestellt wenn ich das Programm starte und in die Zeichenfläche reinmale mit mehrere Farben und denn GetPixel benutze bekomme ich ein Exception fehler.
Wie kann ich das machen das ich den Farbwert rausbekomme ohne Das Bild abspeichenr zu müssen?
Ich bedanke mich jetzt schon mal wenn jemand mir irgend wie helfen kann.