IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

[C++][libpng][WIN&Linux] Récupérer les dimentions d'un P


Sujet :

Bibliothèques

  1. #1
    Invité4
    Invité(e)
    Par défaut [C++][libpng][WIN&Linux] Récupérer les dimentions d'un P
    Bonjour,

    je fais un programme en C++, basé sur SDL, et donc aussi sur libpng.

    Dans ce programme, j'ai besoin de récupérer les dimentions d'un fichier image au format png.
    Je pense que la librairie libpng peut m'y aider, malheureusement ni sur google, ni dans leur site officiel, je n'ai trouvé de description des fonctions contenues dans cet outil.

    Connaissez--vous un moyen de récupérer la largeur et la hauteur d'un PNG ?

    Merci

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    bien le bonsoir,

    t'as de la chance, un article est paru il y a peu.
    http://tfcduke.developpez.com/tutoriel/format/png/
    notamment le point 4.6

  3. #3
    Invité4
    Invité(e)
    Par défaut
    ah génial, merci.

    Je ne comprends juste pas la fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    png_get_IHDR (png_ptr, info_ptr,
                  (png_uint_32*)(&texinfo->width),
                  (png_uint_32*)(&texinfo->height),
                  &bit_depth, &color_type,
                  NULL, NULL, NULL);
    Pouquoi y a-t-il plusieurs parenthèses pour ses arguments, enfin je suis un peu largué quant à son utilisation.

    Argl en plus, OpenGL est nécessaire, si je pouvais m'en passer

    EDIT: Je pense qu'il n'est pas souhaitable d'utiliser ce code, car je ne souhaite pas devoir passer par opengl seulement pour déterminer les dimensions d'une image.
    Autrement est-ce possible simplement avec png.h ?
    Existe-t-il une autre lib multiplateforme linux/win/mac ?

    Merci

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pouquoi y a-t-il plusieurs parenthèses pour ses arguments, enfin je suis un peu largué quant à son utilisation.
    Oublie les parenthèses, il caste simplement les paramètres 2 et 3 dans le type attendu par la fonction.

    Argl en plus, OpenGL est nécessaire, si je pouvais m'en passer
    Je ne vois pas d'OpenGL dans cet appel à une fonction de libpng...

    Existe-t-il une autre lib multiplateforme linux/win/mac ?
    DevIL par exemple, voir la FAQ pour d'autres bibliothèques.

    Mais... SDL, qui encapsule le chargement des images (via SDL_image), ne peut pas te fournir directement ces informations ?

  5. #5
    Invité4
    Invité(e)
    Par défaut
    Non, j'ai regardé la liste de toutes les fonctions de SDL, ell ne charge que les images, ne permet d'en avoir des informations.
    je vais continuer d'essayer avec libpng, non ily a du opengl, mais c'est passable, tout est ok, je vais ressayer cet après-midi.

    Merci

  6. #6
    Invité4
    Invité(e)
    Par défaut
    arf j'ai ça
    libpng error: IDAT: CRC error
    Abandon
    lorsque j'exécute le code du tuto

    ça ne fait pas si je commente ces deux dernières lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      // png_read_end (png_ptr, NULL);
      //  png_destroy_read_struct (&png_ptr, &info_ptr, NULL);
    Mais l'auteur craint des fuites de mémoire, je crois, sans ces lignes.
    Mais autrement ça marche, j'obtiens bien les x et y de l'image.

    ça me rassure, j'aurais été angoissé de devoir utiliser encore une librairie en plus.
    Vu que le programme sera compilé sur linux et windows, je préfère dépendre du moins de chose possibles

Discussions similaires

  1. Quel live CD Linux pour récupérer les data d'un mac qui ne démarre plus ?
    Par beegees dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 03/07/2015, 18h43
  2. récupérer les résultats d'une commande linux dans une base de données
    Par fatimazahra kachiri dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/04/2014, 13h14
  3. [Lazarus] Récupérer les informations exécutable sous Linux ?
    Par tintinux dans le forum Lazarus
    Réponses: 6
    Dernier message: 01/08/2010, 23h03
  4. Réponses: 3
    Dernier message: 30/01/2009, 20h57
  5. Réponses: 4
    Dernier message: 04/07/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo