Bonjour,
J'aimerais bien parvenir a interpreter les "pixels" (lire leur valeur rgb) d'une SDL_Surface, seulement y'as un truc que je comprend pas,
Si par exemple j'ai obtenu ma surface via un LoadBMP , ben la tout va bien, mais j'essaye avec par exemple SDL_CreateRGBSurface, ou TTF_RenderText_Solid, ben la je ne lis que des 0 ou des 1
exemple:
si je fais :
Code :
- fond = SDL_LoadBMP("template.bmp" );
- pix =static_cast<unsigned char *>(fond->pixels);
- for(int df = 0;df < fond->w*fond->h*3;df++)
- cout<<">>>"<<(int)pix[df]<<endl;
|
ben la pas de stress, j'ai bien les meme valeur rgb que dans la bmp, et si je fais:
Code :
- SDL_Color col;
- //...
- col.r=50;
- col.g=50;
- col.b=50;
- lcfont = TTF_OpenFont("./font/FreeMono.ttf", 14);
- if (!lcfont) fprintf(stderr, "Impossible de charger la police:%s\n", SDL_GetError());
- fond = TTF_RenderText_Solid(lcfont, "A",col);
- pix =static_cast<unsigned char *>(fond->pixels);
- for(int df = 0;df < fond->w*fond->h;df++)
- cout<<">>>"<<(int)pix[df]<<endl;
|
Ben la, je voudrais lire des 50 la ou le texte apparait, et des zero ailleurs (vous voyez ce que je veux dire?) seulement, je n'ai que des zero et des "1" , et je comprend pas ce que ca represente? de plus on dirait que y'as pas autant de pixel que w*h, vu que dans le 2ème cas, si je met (df<fond->w*fond->h*3) comme condition du for, ca fait un seg fault.
Quelque peut il m'eclairer ?