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

MFC Discussion :

problème sauvegarde bitmap


Sujet :

MFC

Vue hybride

moufid problème sauvegarde bitmap 07/04/2011, 12h12
LittleWhite Bonjour, Une solution... 08/04/2011, 00h22
jmv Salut, en Bitmap, le point... 10/04/2011, 12h19
moufid Je suis débutant en c++.... 11/04/2011, 10h18
LittleWhite C'est surtout un problème... 11/04/2011, 10h39
bacelar Ne serait-ce pas dû à la... 11/04/2011, 23h04
Mat.M oui et non ce n'est pas... 26/04/2011, 21h21
Mat.M on peut se passer de GDI+ et... 27/04/2011, 04h13
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 31
    Par défaut problème sauvegarde bitmap
    salut,

    J'ai un problème avec sauvegarde bitmap.

    j'ai utilisé ce code pour le sauvegarde mais il me donne l'image en miroir c'est à dire inversé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CBitmap bitmap;
            bitmap.CreateBitmap(width, height, 1, 32, rgbData);
            CImage image;
            image.Attach(bitmap);
            image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatBMP);
    Comment resoudre ce problème.

    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 074
    Billets dans le blog
    145
    Par défaut
    Bonjour,

    Une solution basique, c'est d'inverser l'ordre des données de votre image. En effet, le BITMAP est un format vraiment bizarre ... car lors de la conception, ils ont décidé d'inverser les données dans le fichiers O_o.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    Salut,

    en Bitmap, le point d'origine (coordonnée 0;0) se trouve en bas à gauche de l'image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    (2;0)(2;1)(2;2)...
    (1;0)(1;1)(1;2)...
    (0;0)(0;1)(0;2)...

  4. #4
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 31
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Une solution basique, c'est d'inverser l'ordre des données de votre image. En effet, le BITMAP est un format vraiment bizarre ... car lors de la conception, ils ont décidé d'inverser les données dans le fichiers O_o.

    Je suis débutant en c++.
    Comment faire pour inverser l'image??

    Merci

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 074
    Billets dans le blog
    145
    Par défaut
    Citation Envoyé par moufid Voir le message
    Je suis débutant en c++.
    Comment faire pour inverser l'image??

    Merci
    C'est surtout un problème d'algorithmie et non de C++ ... mais bon ... voyons ce que je peux dire.
    Partons du principe, que nous allons deux tableaux de la même taille. L'un d'entre eux contient l'image (je vais l'appeler 'source') (l'autre, 'destination')
    Il est possible de faire l'inversion de la manière qui suit:
    Parcours des lignes en partant de la dernière pour revenir à la première
    Parcours des colonnes
    source[colonne][ligne] = destination[colonne][ligne-nombre_ligne];
    Et voilà, ça devrait à peu près marcher.
    Sachant que ce ne sont que deux boucles for qui parcourt le tableau à deux dimensions.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    Ne serait-ce pas dû à la configuration du contexte GDI de l'objet CBitmap ou CImage ?

    Comme il manque la création du contenu, c'est un peu la boutique de Mm Irma.

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Une solution basique, c'est d'inverser l'ordre des données de votre image. En effet, le BITMAP est un format vraiment bizarre ... car lors de la conception, ils ont décidé d'inverser les données dans le fichiers O_o.
    oui et non ce n'est pas forcément bizarre;
    l'explication se donne par le fait que toute image Windows BMP est chargée de la fin vers le début.

  8. #8
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    on peut se passer de GDI+ et utiliser directement le GDI avec cet exemple du MSDN "storing an image"
    http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspxCe code est complexe mais il fonctionne je l'ai utilisé pour un projet professionel

Discussions similaires

  1. [HTML2PDF] Problème sauvegarde (output)
    Par forst dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/12/2006, 23h46
  2. Problème Palette bitmap
    Par tiboo dans le forum C++
    Réponses: 11
    Dernier message: 17/08/2006, 00h09
  3. [BitMap] Problème avec BitMap.LoadFromStream
    Par Philippe Gormand dans le forum Delphi
    Réponses: 3
    Dernier message: 22/07/2006, 18h53
  4. [MS SQL Serveur 2000] Problème sauvegarde restauration
    Par m-mas dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/11/2005, 12h25
  5. [BCB6]Problème Dimensions Bitmap
    Par vsavoir dans le forum C++Builder
    Réponses: 10
    Dernier message: 09/11/2004, 13h35

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