Wczytywanie bitmapy z użyciem Getpixel.

Wczytywanie bitmapy z użyciem Getpixel.
L9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
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;
    } 
Kopiuj
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ć.
R3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 419
1

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

Kopiuj
imagedata[counter] = image.GetPixel(y, x);
Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

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

L9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.