System.Drawing.Bitmap
-
Hallo Zusammen ich will aus einem DatagridView ein System.Drawing.Bitmap auslesen und vergleichen. Wo ist mein Denkfehler. Danke
System.Drawing.Bitmap tPicture; tPicture = (System.Drawing.Bitmap)dataGridView[7, mouseLocation.RowIndex].Value; if (tPicture == Fahrtenbuch.Properties.Resources.ok_icon) { toolStripItem3.Enabled = false; }
-
Du vergleichst nur auf Referenzengleichheit und nicht nach den Inhalt.
-
Ja dachte mir schon sowas, sind ja beide nicht das gleiche Objekt. Aber ich finde keine Methode oder Eigenschaft dir mir den Inhalt ausgibt
-
Was verstehst du unter vergleichen von zwei Bitmaps? Es gibt in einem Bitmap nicht nur Farben, sondern auch Speicherformate, Frames, usw.
Falls du nur die Pixel vergleichen möchtest, so gibt es eine Funktion
GetPixel
. Für einen etwas schnelleren Zugriff könntest duLockBits
undUnlockBits
verwenden.
Allerdings halte ich so einen Vergleich für recht fraglich. Wozu brauchst du dies? Zwei Bilder auf Pixelgleichheit zu prüfen ist so gut wie immer eine schlechte Idee.Grüssli
-
Da der Vergleich mit einem "ok_icon" stattfindet, habe ich eine böse Vermutung bzgl. der Absicht
-
Ich habe ein DatagridView, wo Bilder angezeigt werden. Und ich will wissen ob dort
dataGridView[7, mouseLocation.RowIndex].Value;
das
Fahrtenbuch.Properties.Resources.ok_icon
drin ist.
-
Dann merk dir doch pro Zelle mit Hilfe eines zusätzlichen Aufzählungstyps was für eine Grafik drin ist und lege es beispielsweise im DataGridViewCell.Tag ab.