Я использую SDL_image, чтобы загрузить изображение в SDL_Surface
, Как я могу получить все эти данные в vector <int> pixels
?
Я пытался:
Uint32 GetPixel(SDL_Surface *img, int x, int y) {
SDL_LockSurface(img);
//Convert the pixels to 32 bit
Uint32 *pixels = (Uint32 *)img->pixels;
//Get the requested pixel
return pixels[(y * img->w) + x];
SDL_LockSurface(img);
}
И мне интересно, почему я получаю странные результаты …
с изображением 3х3 с черным пикселем в центре я получаю:
[0] (0, 0): 255, 255, 255
[1] (0, 1): 255, 255, 255
[2] (0, 2): 255, 255, 255
[3] (1, 0): 255, 255, 255
[4] (1, 1): 255, 0, 0 //WHY IS THIS NOT 0,0,0?
[5] (1, 2): 255, 255, 255
[6] (2, 0): 255, 255, 255
[7] (2, 1): 255, 255, 255
[8] (2, 2): 255, 255, 255
Задача ещё не решена.