instrukcje warunkowe na pictureBox-ach

0

Witam ponownie, mam problem z takim zapisem:


 img1 = new Bitmap("p_scena_p.png");
 scena1.Image = img1;
...
 if (scena1.Image.Equals((Bitmap)img1)) {
   ...coś
 }

scena1 to pictureBox.
Dlaczego instrukcja jest false ?

0

Bo wskazuje na inny obiekt?

0

no ok, ale jak to zrobić?

0

Ale co dokładnie zrobić?

0

powiedzmy, że mój pictureBox ma udawać button. Pierwsze kliknięcie wciska button (zmienia się obraz pictureBoxa), drugie kliknięcie wraca do stanu off. Teraz chcę rozpoznać czy button jest wciśnięty czy nie analizując jego obraz/grafikę.

0

Przecież to bez sensu.

0

no niby tak :) ale pomyślałem, że zapytam.

0

Lepiej sobie zapamiętać czy przycisk był wciśnięty czy nie, bo porównywanie bitmap będzie czasochłonne.
Ale skoro chcesz, to proszę:

 private static bool CompareBitmaps(Bitmap bmp1, Bitmap bmp2)
{
    ImageConverter converter = new ImageConverter();

    byte[] bytes1 = (byte[])converter.ConvertTo(bmp1, typeof(byte[]));
    byte[] bytes2 = (byte[])converter.ConvertTo(bmp2, typeof(byte[]));

    if (bytes1.Length != bytes2.Length)
    {
        return false;
    }

    for (int i = 0; i < bytes1.Length; i++)
    {
        if (bytes1[i] != bytes2[i])
        {
            return false;
        }
    }

    return true;
}
0

też tak myślałem, ale miałem nadzieję, że da się to inaczej zrobić... nie, to odpada. dzięki za poświęcony czas.

0

Bo cały twój pomysł jest poryty, myślisz że tak to standardowe buttony robią? Czemu właściwie nie zrobisz tego po ludzku, czyli UserControl dziedziczący po PictureBoxie z odpowiednimi Propertiesami i zmiennymi z flagami?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0