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

 C Discussion :

Fichiers binaires [Questions]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 29
    Par défaut Fichiers binaires [Questions]
    Bonjour à toutes et à tous,

    Je crée ce sujet dans le but d'avoir des informations, d'éclaircir l'utilisation des fichiers binaires !

    Alors voilà en fait je voudrais afficher le contenu d'un fichier binaire (une image) dans une fenêtre graphique !

    Le fichier est structuré de la sorte :

    Deux entiers représentant la largeur et hauteur de l'image (en pixel).
    La liste des couleurs (unsigned long) de chaque pixel de l'image parcourue colonne par colonne (de haut en bas).

    Pour la fenêtre graphique j'utilise la bibliothèque graphique de mon école mais le problème se pose plus pour ma part quant à l'affichage de l'image en question !

    Je pensais pouvoir parcourir le fichier .bin à l'aide d'une boucle imbriquée pour afficher le contenu de chaque colonne de haut en bas mais je ne vois pas vraiment comment m'y prendre pour me déplacer concrètement à l'intérieur du fichier qui est ouvert en lecture !

    Merci à vous,

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    mais je ne vois pas vraiment comment m'y prendre pour me déplacer concrètement à l'intérieur du fichier qui est ouvert en lecture !
    On se déplace dans le fichier lorsqu'on lit un élément : automatiquement, on se trouve positionné dans le fichier au début de l'élément suivant celui qui vient d'être lu .
    On peut également se déplacer directement à une position donnée en utilisant les fonctions fseek() ou fsetpos()

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 29
    Par défaut
    Citation Envoyé par diogene Voir le message
    On se déplace dans le fichier lorsqu'on lit un élément : automatiquement, on se trouve positionné dans le fichier au début de l'élément suivant celui qui vient d'être lu .
    On peut également se déplacer directement à une position donnée en utilisant les fonctions fseek() ou fsetpos()
    Oui, je l'entend. Mais en fait avec la fonction fread() qui correspond à la lecture dans les fichiers binaires je ne comprend pas trop puisqu'il faut préciser une destination or moi je souhaite l'afficher juste dans ma fenêtre graphique qui aura été crée juste avant avec les bonnes dimensions !

    De plus je vois mal comment je peux faire ma boucle imbriquée avec la fonction fread() puisqu'il faut que je lise de colonne en colonne et de haut en bas si j'ai bien compris la structure du fichier !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Déjà, il faut être précis sur la manière dont est codé un pixel. Le type "unsigned long" ne veut pas dire grand chose : la norme C ne précise pas sa taille et on peut stocker tout et n'importe quoi dans un objet de ce type (RGB, gris, Y/C, indice palette, etc). Est-ce du RGB (3 * 1 octets) ?
    fread attend en effet l'adresse d'un buffer, car les valeurs qu'il lit depuis un fichier doivent bien être stockée quelque part en mémoire.

    Et surtout, on ne sait pas quelle bibliothèque graphique tu utilises (et donc quelles sont ses fonctions). Peut-elle afficher une image depuis un buffer (i.e. on remplit d'abord le buffer et une fonction affiche l'image d'un coup) ? Dispose-t-elle d'une fonction qui permet d'afficher chaque pixel, en lui envoyant successivement des paramètres (x, y, couleur) ? Quelle est la méthode que tu souhaites utiliser (affichage via buffer, ou pixel par pixel) ?

    Généralement, le plus rapide, c'est de remplir le buffer d'abord, puis d'afficher ensuite. Maintenant, faut connaitre aussi le format de la structure du buffer image de la librairie.

    Lire un fichier et remplir un buffer, c'est simple. Mais tout dépend après du format de ce buffer que les fonctions graphiques utilisent (RGB, RGBA, ou autre ?), du sens de parcours (gauche/droite & haut/bas, ou gauche/droite & bas/haut, bas/haut & gauche/droite, haut/bas & gauche/droite, etc...), etc.

    On ne peut donc pas répondre aussi simplement à ta question. Tout dépend de...

Discussions similaires

  1. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29
  2. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. communication fichier binaire fichier txt
    Par micdie dans le forum C
    Réponses: 3
    Dernier message: 05/12/2002, 00h19
  5. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 13h39

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