Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > API graphiques
API graphiques Forum d'entraide sur les API et bibliothèques graphiques 2D et 3D
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/09/2011, 15h08   #1
fleurdelys77
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 115
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 115
Points : 16
Points : 16
Par défaut libpng se plante à cause de "png_read_info"

Bonjours tout le monde,

Je veux lire une image PNG en utilisant la libpng (j'utilise la version 1.2.8) mon problème se produise lors de l’exécution de la fonction" png_read_info " un message d'erreur indiquant qu'une Violation d’accès mémoire c'est produit. Voici ma fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
 
/* OpenGL texture info */
struct gl_texture_t
{
  GLsizei width;
  GLsizei height;
 
  GLenum format;
  GLint internalFormat;
  GLuint id;
 
  GLubyte *texels;
};
 
static struct gl_texture_t * ReadPNGFromFile (const char *filename)
{
  struct gl_texture_t *texinfo;
  png_byte magic[8];
  png_structp png_ptr;
  png_infop info_ptr;
  int bit_depth, color_type;
  FILE *fp = NULL;
  png_bytep *row_pointers = NULL;
  png_uint_32 w, h;
  int i;
 
  /* Open image file */
  fp = fopen (filename, "rb");
  if (!fp)
    {
      fprintf (stderr, "error: couldn't open \"%s\"!\n", filename);
      return NULL;
    }
 
  /* Read magic number */
  fread (magic, 1, sizeof (magic), fp);
 
  /* Check for valid magic number */
  if (!png_check_sig (magic, sizeof (magic)))
    {
      fprintf (stderr, "error: \"%s\" is not a valid PNG image!\n",
	       filename);
      fclose (fp);
      return NULL;
    }
 
  /* Create a png read struct */
  png_ptr = png_create_read_struct
    (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
  if (!png_ptr)
    {
      fclose (fp);
      return NULL;
    }
 
  /* Create a png info struct */
  info_ptr = png_create_info_struct (png_ptr);
  if (!info_ptr)
    {
      fclose (fp);
      png_destroy_read_struct (&png_ptr, NULL, NULL);
      return NULL;
    }
 
  /* Create our OpenGL texture object */
  texinfo = (struct gl_texture_t *)
    malloc (sizeof (struct gl_texture_t));
 
  /* Initialize the setjmp for returning properly after a libpng
     error occured */
  if (setjmp (png_jmpbuf (png_ptr)))
    {
      fclose (fp);
      png_destroy_read_struct (&png_ptr, &info_ptr, NULL);
 
      if (row_pointers)
	free (row_pointers);
 
      if (texinfo)
	{
	  if (texinfo->texels)
	    free (texinfo->texels);
 
	  free (texinfo);
	}
 
      return NULL;
    }
 
  /* Setup libpng for using standard C fread() function
     with our FILE pointer */
  png_init_io (png_ptr, fp);
 
  /* Tell libpng that we have already read the magic number */
  png_set_sig_bytes (png_ptr, sizeof (magic));
 
  /* Read png info */
  png_read_info (png_ptr, info_ptr); // C'EST LA OU IL CE PLANTE
 
........................
Je serai très reconnaissante si vous arrivez à m'aider
fleurdelys77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 16h54   #2
fleurdelys77
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 115
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 115
Points : 16
Points : 16
j'ai changé la version j'utilise libpng 1.2.37 et zlib 1.2.3 mais c'est toujours le même problème ?

Merci d'avance pour tout ce qui essaye de m'aider
fleurdelys77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 13h03   #3
fleurdelys77
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 115
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 115
Points : 16
Points : 16
C'est bon j'ai trouvé la solution ... il fallait suivre ces étapes pour une configuration correcte et voici le lien

http://www.leptonica.org/vs2008doc/b...libraries.html

Bon courage
fleurdelys77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h02.


 
 
 
 
Partenaires

Hébergement Web