Laden...

PictureBox: Wert eines Pixel abfragen

Erstellt von sevo vor 16 Jahren Letzter Beitrag vor 12 Jahren 7.527 Views
S
sevo Themenstarter:in
18 Beiträge seit 2006
vor 16 Jahren
PictureBox: Wert eines Pixel abfragen

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!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo sevo,

((Bitmap)pictureBox4.Image).GetPixel (...)

herbivore

PS: Vermutlich musst du MouseDown und nicht Click verwenden, um an die Koordinaten des Clicks zu kommen.

Gelöschter Account
vor 16 Jahren

@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

S
sevo Themenstarter:in
18 Beiträge seit 2006
vor 16 Jahren

Danke! 👍
Hat bestens geklappt und ja, ich habe MouseDown verwendet anstatt Click.

S
506 Beiträge seit 2006
vor 16 Jahren

hättest auch Click nehmen können, und die Koordinaten dann wandeln mit "PointToClient"

2.921 Beiträge seit 2005
vor 13 Jahren

@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:

Creating an eye-dropper

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.

C
3 Beiträge seit 2012
vor 12 Jahren

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.