[C#] Graphics

0

Witam!
Mam obiekt graphics o rozmiarze 100x100 po ktorym sobie maluje myszka.
Potrzebuje funkcji, ktora zwroci mi tablice boolowska o rozmiarze 100x100, gdzie dane pole w tablice bedzie odpowiadalo danemu pikselowi w graphics, na zasadzie ze jesli dany piksel jest zamalowany to ma tam byc true, a jak niezamalowany to false.
Ma ktos jakis pomysl?

0

Moszesz poczytac o klasie Bitmap i jej metodzie GetPixel

0

Ale w czym problem? Najprostsze rozwiązanie (ale powolne) to podwójny for z GetPixel() i jedziemy..

        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox1.Image = new Bitmap(100,100);
            var g = Graphics.FromImage(pictureBox1.Image);
            g.Clear(Color.White);
            g.DrawLine(Pens.Black, 5, 5, 50, 50);
            g.Dispose();

            bool[,] tablica = new bool[100, 100];
            Bitmap bmp=(Bitmap)pictureBox1.Image;
            for(int i=0;i<100;i++)
                for(int j=0;j<100;j++)
                    tablica[i,j]=bmp.GetPixel(i,j)!=Color.White;
        }

Jeśli jednak prędkość ma znaczenie, to zamiast GetPixel trzeba zrobić na wskaźnikach.

0

dokladnie o cos takiego jak getPixel mi chodzilo! pierwsze kroki stawiam w .NET (z javy sie przesiadam) dlatego mam jeszcze male problemy z ogarnieciem takich prostych rzeczy :P dzieki wielkie w kazdym razie!!

1

Taka drobnostka - nie jestem w 100% pewien czy dotyczyto też tablic, ale rozmiar jednego boola wynosi... 2 bajty. :|

Tak czy inaczej do przetwarzania tablic bitów najlepsza jest specjalna klasa, bitarray bodajże

@down: no może i... [wstyd]

0
MSM napisał(a)

Taka drobnostka - nie jestem w 100% pewien czy dotyczyto też tablic, ale rozmiar jednego boola wynosi... 2 bajty. :|

1 bajt.

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