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 :

SetDIBitsToDevice() - Problème d'affichage des couleurs


Sujet :

MFC

  1. #1
    BNS
    BNS est déconnecté
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Points : 45
    Points
    45
    Par défaut SetDIBitsToDevice() - Problème d'affichage des couleurs
    Bonjour à tous!
    Je veux faire un truc tout bete: je souhaite charger une image avec la bibliothèque CxImage, transformer cettte image en un tableau DIB, et demander à SetDIBitsToDevice() de me l'afficher.

    Je fais donc les étapes suivantes:

    Je crée ma structure Bitmap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bmi.bmiHeader.biSize = sizeof(BITMAPINFO);
    bmi.bmiHeader.biWidth = 234;
    bmi.bmiHeader.biHeight = 218;
    bmi.bmiHeader.biPlanes = 1;
    bmi.bmiHeader.biBitCount = 24;
    bmi.bmiHeader.biCompression = BI_RGB;
    bmi.bmiHeader.biSizeImage = 0;
    bmi.bmiHeader.biXPelsPerMeter = 96;
    bmi.bmiHeader.biYPelsPerMeter = 96;
    bmi.bmiHeader.biClrUsed = 0;
    bmi.bmiHeader.biClrImportant = 0;
    Puis je charge l'image considérée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image.Load("essai.bmp");
    Et enfin je demande l'affichage du code DIB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetDIBitsToDevice(hDC, X, Y, 234, 218, 0, 0, 0, 218, Image.GetDIB(), &bmi, DIB_RGB_COLORS);
    Et le résultat est pour le moins surprenant... Au lieu d'avoir mon image de départ, j'ai une image ou les couleurs sont modifiées (le jaune devient violet, le bleu devient vert, le vert devient violet etc...)! de plus, les 10-15 dernières colonnes de pixels de l'image (colonnes de droite) se retrouvent à gauche de l'image...
    Je cherche la solution... le tableau DIB devrait pourtant bien me donner tout simplement un truc du genre:
    {RGBRGBRGBRGBRGBRGB etc etc} ... ou bien ?

    merci d'avance pour vos conseils et votre aide!

  2. #2
    BNS
    BNS est déconnecté
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Bon alors j'ai "résolu" mon problème en passant par la fonction Draw de la bibliothèque CxImage, qu permet d'afficher mon image...
    Mais si quelqu'un pouvait me dire d'ou pourrait venir le problème avec la fonction SetDIBitsToDevice(), ca pourrait m'aider pour le futur!
    merci beaucoup!

Discussions similaires

  1. [office]problème d'affichage des couleurs
    Par doc_nounours dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 09/07/2006, 12h18
  2. Problème d'affichage des tables
    Par talere dans le forum Access
    Réponses: 6
    Dernier message: 24/10/2005, 14h02
  3. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 07h58
  4. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 18h07
  5. Réponses: 1
    Dernier message: 06/03/2003, 12h57

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