1

bon, g par exemple une image de 10*10, elle est codée comme ca :

/*frame = 1, width=10, height=10*/
const unsigned int nodevoil[10][3] = {
{0x25252525,0x25252525,0x00000025},
{0x6E926E6E,0x9292726E,0x00002449},
{0x96B6B692,0xB6B6B6B6,0x00002572},
{0x96B69296,0xB6B6B6B6,0x0000256E},
{0xB6929296,0xB6B6B6B6,0x00002572},
{0x927292B6,0xB692B692,0x0000256E},
{0x96929296,0x96929292,0x0000256E},
{0x92929296,0xB6929292,0x00002572},
{0x92B69696,0x96929292,0x0000256E},
{0x9296B692,0x96969292,0x0000254D}};

et j'aimerais lire la couleur d'un point particulier de cette img,
elle serais codée ds une matrice de 10*10, aucun probleme, mais la en 10*3 g aucune id ...

g absolument besoin de pouvoir lire point par point les images pour finir ma lib de gestion de colision, et g pas envi de me cantoner a la colision par zone sad

il est trop tot pour que je me rende fou avec des truc du style 1 int = 4 octets, la c en 256 couleurs donc = 1 octet, mais moi je veut gerer du 16bit ect ect ect ....

voila ... si qq a une id ^^''' moi je v dormir happy
et la le mec il le pécho par le bras et il lui dit '

2

euh, donc chaque pixel c'est un octet?
bah il est ou le pbl? tu peux faire deux trucs, soit:

#define BYTE unsigned char

BYTE get_pixel(int x, int y)
{
BYTE *image;

image = (BYTE*) &(nodevoil[0]); /* pareil que image = (BYTE*) nodevoil, mais certains compilateurs aiment pas et te font un warning */
return (image[y * 10 + x]);
}

sinon:

BYTE get_pixel(int x, int y)
{
return ((nodevoil[y * 3 + (x >> 2)] >> (x & 3)) & 0xff);
}

qquechose comme ca...
(et les x et y vont de 0 a 9, pas de 1 a 10)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

3

ben je pense la même chose.
perso je me sers de defineIt.h qui a déjà une fonction GetPixel( x, y) implantée.
Ensuite il suffit de bouger les coordonnée en fonction de ton tableau de points.
Dailleurs c'est sur ce principe que j'ai fais une fonction de rotation de sprite ( avec l'aide de Bille2 smile )
mon site dessins en tout genre ( BD, presse... ) :
http://loupekele.free.fr
mon site de peinture :
http://dmontoro.free.fr

4

ah ui ct tt con merci smile

le pire c que pour les fonctions de gamepark il faut aussi caster l'image avec unsigned char, ca aurais du me mettre la puce a l'oreille tongue

"et les x et y vont de 0 a 9, pas de 1 a 10" en fait mon vrai prblm etait que je comprenais pas pkoi 3, ct pas multipliable pour faire 10 ^^ now je comprend lol honte a moi ^^'

je devrai pas avoir trop de prblm pour passer en 16bits smile

Pékélé, merci aussi, je v aller un peu matter defineIt.h, y a l'air d'avoir de bon truc
dedans grin
et la le mec il le pécho par le bras et il lui dit '

5

noferov
a écrit : "et les x et y vont de 0 a 9, pas de 1 a 10" en fait mon vrai prblm etait que je comprenais pas pkoi 3, ct pas multipliable pour faire 10 ^^ now je comprend lol honte a moi ^^'

La raison n'est pas là. La raison est que 10/4=2,5. Donc tu as besoin de 2 entiers et demi de 32 bits (4 octets) chacun. Et comme toute ligne est codée sur un nombre entier d'entiers de 32 bits (ne me demande pas pourquoi), tu as besoin de 3 entiers de 32 bits. C'est aussi pour ça que ton 3ème entier de 32 bits de chaque ligne est complété par des 0000.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

ah bah ui c pas bete ^^'
j'avais jamais remarqué les 2 octets vides

merci kevin smile
et la le mec il le pécho par le bras et il lui dit '

7

Pékélé, je viens de matter la lib DefineIt, la fonction getpixel ne m'interesse pas,
elle renvoi la couleur d'un point de l'ecran, moi je veut la couleur d'un point d'une image...
et la le mec il le pécho par le bras et il lui dit '

8

ha ok......ça doit pouvoir se bricoler smile
mais si qqns d'entre vous sont intéressés pour agrémenter DefineIt de leurs fonctions afin d'avoir une librairie graphique simple d'utilisation et uniformisée, celà permetrait une meilleure lecture des codes sources de chacun, un développment + rapide.

Je cherche en ce moment à rajouter une fonction Line ( x0,Y0, X1,y1, color)
qui s'emploierait simplement sans les contraintes liés à l'usage de la variable GPDRAWSURFACE.
Bref comme la fonction FillTo(X0,Y0,X1,Y1,c) qui existe déjà.

ça peut vous paraitre simple mais je n'ai pas votre niveau wink
Mais je vais y arriver grin

Alors j'attends vos proposition dans le genre, je suis sûr que chacun a ses propres fonctions qui demandent qu'à aider la vie d'autres codeurs smile ( surtout les newbee grin )
mon site dessins en tout genre ( BD, presse... ) :
http://loupekele.free.fr
mon site de peinture :
http://dmontoro.free.fr