Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Creer un fichier bmp a partir de données



  1. #1
    joe_mimi

    Creer un fichier bmp a partir de données


    ------

    Bonjour,

    Actuellement en projets BTS IRIS 2eme année, je voudrais savoir comment créer une image bmp en c++ sous linux a partir de mesures(en millimetres). Le but est de representer la surface d'une piece avec des creux en mettant les partie creuses dans une autre couleur.

    En attente d'une réponse, veuillez agréer s'il vous plait, l'expression de ma croundavance distinguée

    -----

  2. Publicité
  3. #2
    Dlzlogic

    Re : Creer un fichier bmp a partir de données

    Bonjour,
    C'est un peu difficile de vous répondre, parce d'un côté, c'est très simple, mais on peut aussi s'arracher les cheveux avec ce genre de truc.
    Un fichier Bmp est un tableau comportant n lignes et p colonnes.
    La première chose à faire est de fixer la dimension de ce tableau.
    Chaque pixel a une position (l,c) dans ce tableau.
    Cette position est en relation avec la vue de dessus de votre pièce.
    Supposons que ce tableau soit déclaré ainsi : unsigned char tab[320][600];
    chaque pixel est un char, son amplitude est 0, 255. qui sera fonction des trous et bosses.
    Il faut écrire une relation entre cette variable et une fable de couleurs.

    Il vaudrait mieux que vous soyez plus précis dans votre question, par exemple, les détails concernant le langage, l'OS, l'unité, ne présentent aucun intérêt.

  4. #3
    joe_mimi

    Re : Creer un fichier bmp a partir de données

    En fait il n'y a que des creux

    les données dont je dispose sont celles-ci :
    il y a 7 mesures par longueurs tout les 1cm. la pièce est de dimension 7cm x7cm.
    0.000
    0.010
    0.010
    0.010
    0.010
    0.010
    0.010

    0.010
    1.006
    0.010
    0.010
    0.010
    0.010
    0.010

    1.495
    0.010
    0.010
    0.010
    0.010
    0.010
    1.123

    0.010
    0.010
    0.010
    0.010
    6.398
    1.690
    0.010

    0.010
    0.010
    0.010
    5.206
    3.819
    1.983
    0.010

    0.010
    0.010
    0.010
    0.010
    0.010
    0.010
    0.010

    Quand c'est 0,010 c'est que la surface est plane.
    j'ai dessiné sur paint approximativement le résultat que je souhaite obtenir.
    Images attachées Images attachées

  5. #4
    Dlzlogic

    Re : Creer un fichier bmp a partir de données

    Il y a beaucoup de solutions possibles.
    Mais si je prends vos hypothèses : un BMP de 8x8 la solution la plus simple me parait être de créer un fichier BMP vide de 8x8, vous allez vite repérer qu'il a une entête, puis 8 lignes de 8 valeurs.
    Je pense qu'avec Paint vous pourrez créer ce fichier en choisissant 16 couleurs.
    Vous faites un tableau en short int de 8x8, avec quelques essais, vous allez vite repérer que le BMP compte de haut en bas, et vous, probablement de bas en haut.
    Bien-sûr pour lire ce BMP et le réécrire, il faudra travailler en binaire.
    Pour bien comprendre comme est ce fichier, avec Paint faites un dessin très simple mais dont vous verrez facilement le sens. Puis vous imprimer ce fichier dans un format intéressant, par exemple %X.

  6. A voir en vidéo sur Futura
  7. #5
    whoami

    Re : Creer un fichier bmp a partir de données

    Bonjour,
    Citation Envoyé par Dlzlogic Voir le message
    vous allez vite repérer que le BMP compte de haut en bas
    Hélas non.

    Une fois passé l'entête, on trouve les données dans le sens : la première en bas de l'image, ...

    Je suis également dans ce piège, et j'avais du coup fait la manip suggérée.

  8. #6
    Dlzlogic

    Re : Creer un fichier bmp a partir de données

    Bon, alors, vous suggérez quoi ?

  9. Publicité
  10. #7
    Chanur

    Re : Creer un fichier bmp a partir de données

    Utiliser une bibliothèque qui gère les fichiers BMP
    Par exemple pour Qt, la classe QImage a un constructeur qui prend en entrée un tableau représentant l'image (bitmap memoire) et sait écrire un fichier bmp (ou jpg, gif ...)
    http://doc.qt.digia.com/stable/qimage.html
    Du coup, le seul problème est de créer le bitmap mémoire, ce qui n'est pas sorcier.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  11. #8
    Dlzlogic

    Re : Creer un fichier bmp a partir de données

    Citation Envoyé par Chanur Voir le message
    Utiliser une bibliothèque qui gère les fichiers BMP
    Par exemple pour Qt, la classe QImage a un constructeur qui prend en entrée un tableau représentant l'image (bitmap memoire) et sait écrire un fichier bmp (ou jpg, gif ...)
    http://doc.qt.digia.com/stable/qimage.html
    Du coup, le seul problème est de créer le bitmap mémoire, ce qui n'est pas sorcier.
    Oui, c'est la solution normale, mais peut-être pas la plus facile.
    L'installation des bibliothèques graphiques sous-entend le besoin de les utiliser et un petit apprentissage. C'est pour ça que j'ai proposé à notre ami une solution bas-niveau.
    Au moins il aura les deux approches.

  12. #9
    whoami

    Re : Creer un fichier bmp a partir de données

    Bonjour,

    J'ai tendance à préconiser la même chose que Dlzlogic : tout faire de A à Z.

    Le format .bmp n'est pas compliqué, les infos ne manquent pas sur le web, et c'est une expérience intéressante.

  13. #10
    joe_mimi

    Re : Creer un fichier bmp a partir de données

    Bon, finalement j'ai mixé les 2 solutions : j'ai crée sur paint une image bmp de la taille voulu et ensuite je la modifie en utilisant la fonction setpixel de Qt !

    merci pour vos reponses

Discussions similaires

  1. Créer des données vectorielles à partir d'échantillons ?...
    Par Jodice dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 03/07/2013, 00h01
  2. Analyse fichier BMP
    Par xpomx dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 07/04/2013, 17h54
  3. Écrire dans un fichier à partir de données d'un tableau
    Par dalfred dans le forum Programmation et langages, Algorithmique
    Réponses: 15
    Dernier message: 17/11/2012, 14h36
  4. créer un Mesh ( utilisant vtksurface) à partir d'un fichier du boite de diaogue
    Par tasnim2010 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 04/05/2012, 18h21
  5. Creer une liste sur mathématica à partir d'un fichier excel
    Par paradise295 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/05/2008, 17h04