pixels -> pixmap

peon.master

Membre actif
22 Avril 2002
144
5
44
Vernayaz
Hello!

J'aimerai convertir un bloc de pixels en pixMap.

Les pixels : "unsigned char *imageBuffer" c'est du RGBA qui viend de la fonction openGL glReadPixels.

Le pixMap que j'aimerai, c'est pour les fonctions GetMaxCompressionSize() et CompressImage(); des librairies QuickTime.

Le but de tout ça c'est biensûr de faire une vidée d'une anim openGL.
C'est du C sous xCode

méci de votre aide.
 
Salut,

Regarde du coté de la fonction QTNewGWorldFromPtr, elle construit un GWorld
à partir de pixels bruts. GetGWorldPixMap permet ensuite d'en récupérer le PixMap.

++
 
ça marche

il faut aussi retirer 16 Bytes par ligne d'image pour que ce soit correct. Apparemment, c'est OpenGL qui les ajoute. Si je ne le fait pas, l'image est toute penchée.

:)

merci!
a peluche
 
OpenGL fait sûrement ça pour des questions d'alignement mémoire, mais attention, le nombre de bytes en plus risque de dépendre du contexte (taille de l'image, résolution, hardware...)

Je n'ai jamais expérimenté ça, mais regarde la doc sur glPixelStore et GL_PACK_ROW_LENGTH, ça décrit la quantité de mémoire qu'occupe réellement une ligne. Le paramètre rowBytes de QTNewGWorldFromPtr correspond à la même chose. Avec tout ça on doit pouvoir se passer de l'étape du "redressement" de l'image. :)

a ciao.