Bonjour,
Je souhaite parcourir une image en évitant les pixels se trouvant sur les bords de l'image. Pour tester mon code, je mets en noir les pixels parcourus. Le problème c'est qu'au lieu de colorier en noir le centre de l'image et d'avoir un carré de couleur autour, les pixels évités forme un sorte de Z : la première ligne et la dernière sont correctement évitées, mais il y a un problème pour le bord gauche et droit qui forment une diagonale.
J'ai affiché pos, pour une image 5x5, elle prend bien successivement toutes les valeurs de 0 à 75 en évitant 0 à 17, 27 à 32... Est-ce que ça viendrait de la manière dont SDL stocke les pixels d'une image ?
Un petit coup de main serait grandement apprécié, je me prends la tête la-dessus depuis quelques heures...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SDL_Surface *resultat; SDL_LockSurface(resultat); Uint8 *pixels_result = (Uint8 *)resultat->pixels; for(int channel = 0; channel < 3; channel++) { for(int i = 1; i < resultat->h - 1; i++) { for(int j = 1; j < resultat->w - 1; j++) { pos = (((i * resultat->w) + j) * 3) + channel; *(pixels_result + pos) = 0; } } }
Partager