Laden...

Wie erhalte ich die richtige Farbe bei Mausklick???

Erstellt von neonice vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.680 Views
n
neonice Themenstarter:in
2 Beiträge seit 2008
vor 15 Jahren
Wie erhalte ich die richtige Farbe bei Mausklick???

Hallo Leute!

Ich habe ein großes Problem. Und zwar möchte ich mir die Farbe eines angeklickten Pixels (über MouseDown-Event) in einer Bitmap wiedergeben lassen.

Das Problem daran ist, dass die PictureBox, wo das Bild reingeladen ist über den StretchMode läuft, damit das ganze Bild angezeigt wird. D.h. der angelickte Pixel im Bild stimmt mit dem Orginalbild nicht überein. Weil das Bild entweder gestaucht oder gestreckt wurde.

Nun meine Frage an euch, ob ihr vielleicht eine Idee habt? Mir fällt einfach nichts ein.

Codebeispiel:

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
          {
              Point p;
              Color Farbe;

            
                  p = PointToClient(Control.MousePosition);
                  Farbe = BMP.GetPixel(p.X, p.Y);
              
          }

MFG neonice

Gelöschter Account
vor 15 Jahren

als erstes musst du den faktor um das deine pitmap gestreched wurde, berechnen. dann wendest du diesen faktor auf die mouseposition aus den eventargs an. anschließend holst du den pixel mit getpixel aus dem bitmap heraus.

ps: eine gewisse ungenauigkeit bleibt trotzdem bestehen.

was dich evtl noch interessieren dürfte:GetPixel und SetPixel um Längen geschlagen. 800 mal schneller

915 Beiträge seit 2006
vor 15 Jahren

Hol dir doch mit Win API GDI BitBlit das Bitmap des verwendeten Handels also z.B. deines Form oder der Picturebox ab und berechne von dort aus die Pixel. Somit musst nicht umrechnen.

Kannst das ganze auch mit nur .NET Mittel angehen indem einfach nen Screenshoot deiner Form bzw. Picturebox machst und von dort wiederum die Mauskoordinaten auf das Bildumrechnest um so dann vom verzeerten Bild dne Pixel zu bekommen.

Wie Screenshoots machst findest über die Suche hier im Forum.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

Gelöschter Account
vor 15 Jahren

wenn du von einem verzerrten bild ein pixel entnimmst, muss der farbwert nicht mit dem original übereinstimmen.

n
neonice Themenstarter:in
2 Beiträge seit 2008
vor 15 Jahren

Ich bedanke mich erstmal für eure Hilfe. Ich versuche es mit euren Ansätzen hinzubekommen.