Wczytywanie bitmapy z użyciem Getpixel.

0

Proszę o pomoc z następującym problemem. Piszę program, który wczytuje bitmapę, zmienia jej rozmiar, a następnie wyświetla obrazek za pomocą znaków ascii. Mam problem z wczytywaniem kolorów pixeli. Wrzucam kod.
static Color[] GetPixelStream(Bitmap image)
{
int PixelNumber = (image.Width * image.Height);
Color[] imagedata = new Color[PixelNumber];
int counter = 0;
for(int x = 0; x < image.Height; x++)
{
for(int y = 0; y < image.Width; y++)
{
imagedata[counter] = image.GetPixel(x, y);
counter++;
}

            }
        return imagedata;
    } 
Tworzę sobie jednowymiarową tablicę colorów, do której zczytuję kolory poszczególnych pixeli. Niestety, z niewiadomych dla mnie przyczyn debugger pokazuje ArgumentAutOfRangeException, oznaczający że  mój x lub y przekroczyły wartości szerokości lub wysokości obrazka. Proszę o wskazanie, gdzie może leżeć problem, ponieważ nie mam już pomysłów skąd może się to brać.
1

Przy kwadratowych obrazkach twój program powinien działać :)
A jak zrobisz tak program wysypuje się nadal?

imagedata[counter] = image.GetPixel(y, x);
1

Odwrotnie x oraz y: x ma iść do szerokości obrazka (Width), a y do jego wysokości (Height).

0

Dziękuję. Problemy były dwa, jeden z zaokrągleniem rozmiarów skalowanego obrazu a drugi tak jak napisał Ktos. Jeszcze raz dzięki i pozdrawiam.

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