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 :

Image BMP C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2015
    Messages : 1
    Par défaut Image BMP C++
    Bonjour,

    Je doit faire un programme en C++ permettant d'importer une image BMP, et qui modifie le contour de l'image afin de faire un cadre noir de 3px en utilisant que la bibliothèque de base.
    Ce que j'ai réussi a faire pour l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include<fstream>
    #include <iostream>
    #include <istream>
    #include <iomanip>
     
     
    using namespace std;
    int main()
    {
        ifstream source;
        source.open("G:/Documents/Téléchargements/panda.bmp", ios::binary|ios::ate);
        int taille_du_fichier = source.tellg();
        source.seekg(0,ios::beg);// remmet le curseur au début
        char buffer[taille_du_fichier];
        source.read(buffer,taille_du_fichier);
        source.close();
     
     
        //la vous modifiez buffer comme vous voulez
        //static_cast<int>(static_cast<unsigned char>(buffer[7])) pour adapter les valeurs hexa du fichier en decimal
     
        ofstream sortie;
        sortie.open("G:/Documents/Téléchargements/panda.bmp", ios::binary);
        //ecrire le buffer modifié dans le fichier
     
        sortie.close();
        delete[] buffer; //on libere la memoire
        return 0;
    }
    Je sais aussi que:
    Pixel numéro 18-19 donne la largeur
    Pixel numéro 22-23 donne la hauteur

    Ce qu’il faut faire :
    1 er :
    on modifie 3 dernière ligne ==> modifier 3*longueur de pixel en noir
    2 ème :
    on modifie bordure ==> modifie 3 pixel, on décale le curseur de largueur - 6 pixel, on modifie 3 pixel ==> *(hauteur – 6)
    3ème :
    on modifie 3 première ligne ==> modifier 3*longueur de pixel en noir

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    le format BMP est plutôt simple http://en.wikipedia.org/wiki/BMP_file_format
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Salut,

    le format BMP est plutôt simple http://en.wikipedia.org/wiki/BMP_file_format
    Plutôt simple

    Tu as vu la longueur des entêtes: elles trainent une compatibilité assez énorme: des palettes, des profils, 2-3 méthodes de compression, différents "pixel format"...
    Et en plus la majorité des BMPs sont mal formées parce qu'elles devraient avoir BITMAPV5HEADER.

    La longueur des lignes doit être un multiple de 4 (donc bourrage à la fin si nécessaire) et l'image est stockée à l'envers de droite à gauche (il me semble)

    Heureusement que les algos sont calés depuis 14 ans

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2006
    Messages : 48
    Par défaut
    Citation Envoyé par foetus Voir le message
    Plutôt simple
    J'ai aussi beaucoup ri aussi...
    Le BMP aurait pu être beaucoup plus simple et être un exercice parfait pour débutant... Ce n'est malheureusement pas le cas!

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Les formats d'image les plus faciles sont les Pixmap Format (.ppm, .pgm et .pbm)

    Et avec Qt, j'ai découvert le X PixMap

    Le problème de ces formats [de geek ] c'est qu'ils sont manipulables qu'en utilisant de gros logiciels.
    Mais ImageMagick les convertit facilement

  6. #6
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    Et moi qui croyais que le bmp était un format simple et standard...
    Je pense que Bousk voulait plutôt dire: "ouvrir et fermer des fichiers ce n'est pas du traitement d'image.. le travail n'est même pas encore commencé !".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/02/2004, 15h23
  2. images bmp et pgm (P5)
    Par sylvain m. dans le forum C
    Réponses: 3
    Dernier message: 13/09/2003, 18h30
  3. [BPW] Impression d'une image BMP
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 21/08/2003, 14h34
  4. Impression d'image bmp
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2002, 09h38
  5. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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