GlInFrench - GtkFr

Bienvenue sur nos forums !

Vous n'êtes pas identifié.

#1 24-01-2005 04:28:01

FmrFirebird
Membre
Lieu: Clermont-Ferrand
Date d'inscription: 15-09-2002
Messages: 302
Site web

libpng

Si qqun aurai déjà utiliser la libpng 1.2.8 avec zlib dans un projet visual c++ je serai intéressé de voir comment il a fait.

En fait j'utilise les binaries telechargé directement de zlib.org et de libpng (dll et .lib) et je me retrouve avec un gros crash à l'éxecution sur

Code:

png_read_info(png_ptr,info_ptr);

merci.

ps: j'ai pourtant fait comme dans les exemples, et dans le man de libpng.


Mon projet en cours : http://objective3d.free.fr

Hors ligne

 

#2 24-01-2005 06:51:10

FmrFirebird
Membre
Lieu: Clermont-Ferrand
Date d'inscription: 15-09-2002
Messages: 302
Site web

Re: libpng

A force de farfouillé j'ai trouvé une solution.
Il suffit de definir la fonction callback de lecture (ecriture si mode saving), apparement elle ne devait pas être définie par défaut.

exemple:

Code:

void _ReadProc(struct png_struct_def *, unsigned char *data, unsigned int size)
{
    fread(data,size,1,file_handle);
}

et dans la fonction avant de lire le header:

Code:

png_set_read_fn(png_ptr,info_ptr,_ReadProc);

Bon maintenant me reste à faire marcher la décompression de l'image en elle même, et c'est un autre cinéma.


Mon projet en cours : http://objective3d.free.fr

Hors ligne

 

#3 14-09-2005 02:20:03

FmrFirebird
Membre
Lieu: Clermont-Ferrand
Date d'inscription: 15-09-2002
Messages: 302
Site web

Re: libpng

Bon j'en profite pour poster aussi l'astuce pour lire un png avec ligpng à partir de la mémoire et non d'un fichier.

Code:

typedef struct O3D_pngFileBuffer
{
    O3D_UCHAR *buffer;
    O3D_INT pos;
}O3D_pngFileBuffer;

png_filebuffer.pos = 0;
png_filebuffer.buffer = pData;

png_set_read_fn(png_ptr,(png_voidp)&png_filebuffer,_ReadProc);

au lieu de

Code:

png_set_read_fn(png_ptr,info_ptr,_ReadProc);
png_init_io(png_ptr,pFile);

Et rulez!

Heu oui _ReadProc c'est votre callback pour lire les data t'facon c'est obligatoire avec libpng d'en coder un.


Mon projet en cours : http://objective3d.free.fr

Hors ligne

 

#4 08-04-2008 19:59:21

milena
Membre
Date d'inscription: 07-04-2008
Messages: 1

Re: libpng

Bonjour!
J'implémente un petit programme qui utilise des images PNG (pour gérer la transparence) et je rencontre exactement ce problème !
En effet, j'ai un énorme CRASH lorsque je fais : png_read_info(png_ptr,info_ptr);
J'avoue que je n'ai pas trés bien compris comment FmrFrBird a résolu le problème sad (Je suis une débutante)
Où faut il écrire le call back?
A quelle moment fait on appel à png_set_read_fn(png_ptr,info_ptr,_ReadProc) ?

merçi d'avance !

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson