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

Pascal Discussion :

Format BMP [Non suivi]


Sujet :

Pascal

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut Format BMP
    bonjour!
    voila mon probleme :
    j'ai ecrit un programme qui permet de tracer sur l'ecran un cadre avec une bordure remplie d'une couleur. mais je dois enregistrer cette figure en tant qu'image sous le format BMP.
    help please je sais pas comment m'y prendre!!!

  2. #2
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Bonjour,

    Il va falloir se renseigner sur le format Bitmap. On peut en trouver sur Wotsit.
    Une fois le format acquis, il suffit de récupérer la couleur des pixels avec GetPixel et de les inscrire dans le fichier.

    Ceci reste assez compliqué pour un débutant. Des exemples de code peuvent se trouver sur les SWAG (voir l'adresse sur http://pascal.developpez.com/outils/, rubrique Turbo Pascal).

    @++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    oui en fait j'ai tout les renseignement sur le bmp.
    j'ai deja ecrit un programme qui remplit l'en-tete de l'image(longueure,largeure...)
    et j'utilise aussi la fonction getpixel pour stocker les couleur dans un tableau.
    mais apres je bloque.

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Ben suffit de remplir ton fichiers alors... Faut faire attention faut commencer par le coin en bas à gauche si je me souviens bien...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    justement je sais pas comment il faut faire pour remplir le fichier :
    si vous pouvez m'indiquer comment faire? , quelles fonctions utiliser et comment je fais pour commencer en bas à gauche.

  6. #6
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Bonjour,

    Euh, ce n'est pas très compliqué de commencer en bas à gauche

    A supposer que l'image à enregistrer soit contenue dans le cadre (X1,Y1) (X2,Y2), alors il suffit de faire quelque chose de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pour y allant de Y2 à Y1 faire
      Pour x allant de X1 à X2 faire
        Stocker la valeur du pixel (x, y)
      Fin pour
    Fin pour
    Je rappelle qu'on obtient la couleur du pixel (x, y) avec GetPixel(x, y).

    @++

  7. #7
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    Remarque !
    il faut stocker deux couleurs consécutives dans un octet. donc tu dois savoir utiliser les opérateurs shl et shr...
    tu récupère un pixel, tu le mets dans une variable de type byte,
    tu fais un shl
    tu récupère le pixel suivant, tu l'additionne au byte et tu écris le byte dans ton fichier...

    @+

  8. #8
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Ca dépend... Il peut très bien créer un bitmap 24 bits s'il le souhaite. C'est même plus simple pour commencer.

    @++

  9. #9
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    je pensais surtout aux contraintes de taille : un 24 bits pour une image qui n'a que 16 couleurs...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    je vais chercher des infos sur les operateur SHL et shr...
    et en fait il faut repmlir le fichier en commençant en bas a droite...
    c'est quoi la difference entre un 24bit et 16bit?
    l'ai lu aussi quelque part que le nombre d'octect doit etre un multiple de 8 (ou quelque chose du genre).

    ps: désolé si je m'exprime mal , j'ai quelque connaissances en pascal mais notre prof nous a balancer ce projet sans qu'on ait rien vu en cours ou en TP(a ce sujet) et depuis plus de nouvelle de lui..

  11. #11
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    salut
    la différence entre 24 bits et 16bits est que dans un fichier .bmp de 24 bits (resp. 16 bits) les pixels sont codés sur 3 octets (resp. 2 octets).
    en mode 16 couleurs ils sont codés sur 4 bits...
    tu sais il y a le mode 2 couleurs, 16 couleurs (4 bits), ..., 24 bits et 32 bits.
    @+.

  12. #12
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Les bitmaps 16 bits sont à éviter de manière générale. Peu d'applications les reconnaissent. C'est donc prendre le risque de créer un bitmap illisible par certaines applications.

    Même si le format 16 bits est déclaré dans la norme, il reste marginal. Les formats toujours reconnus sont les 1, 4, 8 et 24 bits. 16 et 32 bits sont souvent ignorés.

    @++

  13. #13
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 056
    Billets dans le blog
    2
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    moi l'image que je veux creer ne contient que 2 couleur. donc c'est un bitmap 1 et les pixel sont codés sur 1 byte si j'ai bien compris!!?

  15. #15
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Non, sur un bit par pixel, c'est assez explicite... Donc sur un octet (one byte), il y a 8 bits autrement dit 8 pixels.

    @++

  16. #16
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    Salut
    Je pense qu'il lui faudrait un format bmp 16 couleurs... même si son image n'en a que deux.
    (à moins que se ne soient les couleurs noire et blanche)
    c'est vrai que c'est moins facile à gérer avec les notions de décallage des bits, mais d'un autre côté c'est un bon exercice...
    @+

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    ah d'accord je confondais byte et bit.
    sinon l'image contient deux couleur mais pas le noir et le blanc.

  18. #18
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Peu importe : un bitmap 1 bit contient 2 couleurs quelconques. Elles sont définies dans la palette en début de fichier.

    @++

  19. #19
    Membre confirmé
    Avatar de mario52
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 131
    Par défaut
    Bonjour

    pourquoi ne pas choisir 1 byte , 256 couleurs c'est le plus facile et beaucoups de couleurs
    1 byte = 1 teinte entre 0 et 255 et codage à la queue leu leu
    si tu choisi 2 couleurs il faut travailler bit par bit avec shr shl et tout le toin toin de codage

  20. #20
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    le site
    http://fr.wikipedia.org/wiki/BMP_%28format%29
    est aussi pas trop mal.

    Attention en cas de palette couleure, window ( et donc le format BMP) utilise une organisation BGR et non RGB

Discussions similaires

  1. Superposer deux images au format BMP, JPG ou PNG
    Par Henri-gp dans le forum Langage
    Réponses: 39
    Dernier message: 22/12/2016, 14h42
  2. Cryptographie, image format .bmp, fonctions fopen/fread.
    Par bambam978 dans le forum Débuter
    Réponses: 8
    Dernier message: 25/01/2009, 12h06
  3. Enregistrer une image de format BMP
    Par bilal_inf dans le forum C++Builder
    Réponses: 1
    Dernier message: 07/04/2007, 17h18
  4. [c#] Save au format BMP
    Par topolino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/03/2006, 13h43

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