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 :

luminosit� sur visual c++


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut luminosit� sur visual c++
    bonjour � tous!!

    svp est ce qu'il y a qq1 qui connait une commande sur visual c++, pour g�rer la luminosit� des images, avec �ventuellemnt des boutons plus et moins! je bosse sur des dialogues! (MFC)
    g cherch� sur GDI+ mais g pas trouv�.. plz help!!!
    a plus!

  2. #2
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 537
    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 537
    Par d�faut
    La luminosit� c'est appliquer un filtre pixel par pixel ; chaque pixel est affich� selon une composante RGB en 24bits donc il faut jouer sur les composantes R G B ; il ya des formules pour cela je te conseille de poser la question dans le forum Algorithmes...
    A moins que GDI+ ne propose une m�thode intrins�que pour faire cela ce dont je doute tr�s fortement..

  3. #3
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    GDI+ propose une tripot�e de filtres pour les images:

    Blur
    Sharpen
    Tint
    RedEyeCorrection
    ColorMatrixEffect
    ColorLUT
    BrightnessContrast
    HueSaturationLightness
    ColorBalance
    Levels
    ColorCurve

    Je pense que l� dedans, tu devrais avoir ce qu'il te faut ...

    @+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    salut,
    merci de votre r�ponse, dans un premier temps, g essay� d'adapter l'exemple de la doc de visual, Bitmap::ApplyEffect qui utiliste BrightnessContrast... mais �a ne marche pas !! je vais devenir folle :'( g ajout� les .h kil faut mais tjs rien!
    il ne reconnait meme pas la fonction !!

    help!!

  5. #5
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    ben il faut initialiser correctement GDI+

    tout d'abord dans mets dans StdAfx.h le code suivant pour etre tranquille:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    #include <gdiplus.h>
    using namespace Gdiplus;
    ensuite dans ta classe d�riv�e de CWinApp, rajoute la fonction suivante:

    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
     
    int CEssaiApp::Run()
    {
      GdiplusStartupInput gdiSI;
      GdiplusStartupOutput gdiSO;
      ULONG_PTR gdiToken;
      ULONG_PTR gdiHookToken;
     
      gdiSI.SuppressBackgroundThread = TRUE;
      GdiplusStartup(&gdiToken,&gdiSI,&gdiSO);
      gdiSO.NotificationHook(&gdiHookToken);
      int nRet = CWinApp::Run();
     
      gdiSO.NotificationUnhook(gdiHookToken);
      GdiplusShutdown(gdiToken);
     
      return nRet;
    }
    voir ici si tu veux des explications sur ce bout de code : http://msdn.microsoft.com/en-us/libr...ck(VS.80).aspx

    apr�s, il y a plus qu'a ce laissez guider par la doc

    @+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    saluuut !!

    merci bcp de m'aider, mais malheureusement, la fonction que tu m'a demand� d'ajouter m' a cr�e des erreurs au niveau de GdiplusBase.h, g pas du tout compris ces erreurs d'autant plus que je ne sais comment je peux les g�rer ! g pas ecris la fonction

    tu en pense quoi stp ?! merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

  7. #7
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    salut,

    le code que je t'ai donn� viens de Microsoft.
    c'est exactement le meme code que j'utilise dans mes developpements et je te confirme que �a fonctionne sans probleme.

    sur quel IDE tu d�veloppes ? VS2005 ou VS98 ou autres ?

    oui le code est indispensable, sinon tu ne peux pas te servir des fonctions GDI+...

    @+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    bonjour,
    g verifi� encore mais rien, au fait pour le startup de gdi+ je l'ai fais correctement avant puisque j'utilise toutes les autres fonctions ( relatives � Image, Bitmap ....) sans pb! j'utilise le vs2003 et meme si c fonctions existent dans la doc, il les a vir�.. qd je fais par exemple Bitmap. pr esp�rer des propositions de m�thodes le ApplyEffect ny est plus , ( ni les classes associ�es). c pr sa que g compris pk le compilateur genere et di ke la m�thode n'est pas membre de Bitmap!!
    enfin je c pas si c pas rapport � la version 2003, c bizar qd meme puisque la m�thode figure dans la doc meme ( par que sur le site microsoft) !!

    merci !!

  9. #9
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    salut,

    fais un petit effort pour �crire tes questions, �vite le langage SMS !!!

    En fouinant dans la MSDN, pour intervenir sur la luminosit� tu as aussi une interface ImageAttributes qui combin� avec un Graphics:: DrawImage() ...

    c pr sa que g compris pk le compilateur genere et di ke la m�thode n'est pas membre de Bitmap!!
    c'est dispo a partir de GDI+ 1.1, � tout les coups tu as un vieux SDK ...
    regardes pour t�l�charger le dernier SDK pour GDI+.

    @+

  10. #10
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    bon, je viens de faire un tour dans les header de GdiPlus sur VS2005 et effectivement Bitmap::ApplyEffect n'est pas impl�ment� ... ni les Effect d'ailleurs

    par contre sur VS2008 c'est impl�ment�

    recuperes le dernier SDK c'est la seule solution

    @+

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    bonjour,

    d�j� d�sol�e pour mes messages en mode sms j'avoue que c'est assez irritant ! c'est que j'�cris toujours quand je suis en cours...
    sinon merci de ton aide, je vais lancer le chargement de VS2008 et je tiendrais au courant!! �a marchera cette fois ci je crois
    merci beaucouuuuup!

    �++

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    bonjour!!

    j'ai install� comme pr�vu le VS2008, et je suis sure que j'ai tout bien mis en place, l'initialisation de gdi+, les headers,.. mais toujours rien
    le compilateur ne reconnait pas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    	BrightnessContrastParams briConParams;
    	briConParams.brightnessLevel = 120;
    	briConParams.contrastLevel = 0;
    	BrightnessContrast briCon;
    	briCon.SetParameters(&briConParams);
    et j'imagine qu'il reconnaitra pas ApplyEffect par la suite!

    je sais plus quoi faire,vraiment! surtout que je prends du retard l� et je peux pas me passer de ces effets dans mon projet!

    SOS help!!

  13. #13
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    regardes si ce fichier existe:

    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gdipluseffects.h

    essaye peut etre en mettant un #include <gdipluseffects.h> au cas o� ...

    @+

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    merci vraiment de m'aider � chaque fois meme si je sais que c p�nible de trouver la solution alors qu'on est pas en face du probl�me!
    par contre, je suis d�sol�e de te dire que ce que j'avais d�j� mis le #include <gdipluseffects.h> avant que tu le proposes... j'ai v�rifi� que gdipluseffects est bien dans C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include mais toujours :

    error C2065: 'BrightnessContrast' : undeclared identifier
    error C2228: left of '.SetParameters' must have class/struct/union
    type is ''unknown-type''


    le sort s'acharne comme dirait grandm�re!!! :'(

  15. #15
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    dans GDIPLUSEFFECTS.H il y a cette ligne :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #if (GDIPVER >= 0x0110)
    et dans GDIPLUS.H :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #ifndef GDIPVER
    #define GDIPVER 0x0100
    #endif
    donc d'apr�s moi, il faut que tu fasses :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #define GDIPVER 0x0110
    avant de faire un #include <gdiplus.h>
    a mettre dans le StdAfx.h par exemple
    ou le fichier targetver.h

    �a devrait le faire

    @+

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    re,
    en effet, il y a excactement les lignes de codes que tu m'as dit dans GDIPLUS.H et GDIPLUSEFFECTS.H.
    parcontre, ce que tu m'a demand� d'ajouter dans StdAfx.h il y est d�j�,il y a meme une ligne qui m'a sembl� suscpecte

    voil� je te montre tout mon StdAfx.h :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    ifndef _GDIPLUS_H
    #define _GDIPLUS_H
    
    struct IDirectDrawSurface7;
    
    typedef signed   short   INT16;
    typedef unsigned short  UINT16;
    
    
    // Define the Current GDIPlus Version
    #ifndef GDIPVER
    #define GDIPVER 0x0100 // c la ligne que tu m'a demand� d'ajouter elle �tait d�j� l�
    #endif
    
    #include <pshpack8.h>   // set structure packing to 8
    
    namespace Gdiplus
    {
        namespace DllExports
        {
            #include "GdiplusMem.h"
        };
    
        #include "GdiplusBase.h"
    
        #include "GdiplusEnums.h"
        #include "GdiplusTypes.h"
        #include "GdiplusInit.h"
        #include "GdiplusPixelFormats.h"
        #include "GdiplusColor.h"
        #include "GdiplusMetaHeader.h"
        #include "GdiplusImaging.h"
        #include "GdiplusColorMatrix.h"
    #if (GDIPVER >= 0x0110)   
        #include "GdiplusEffects.h" 
    #endif
        #include "GdiplusGpStubs.h"
        #include "GdiplusHeaders.h"
    
        namespace DllExports
        {
            #include "GdiplusFlat.h"
        };
    
    
        #include "GdiplusImageAttributes.h"
        #include "GdiplusMatrix.h"
        #include "GdiplusBrush.h"
        #include "GdiplusPen.h"
        #include "GdiplusStringFormat.h"
        #include "GdiplusPath.h"
        #include "GdiplusLineCaps.h"
        #include "GdiplusGraphics.h"
        #include "GdiplusMetafile.h"
        #include "GdiplusCachedBitmap.h"
        #include "GdiplusRegion.h"
        #include "GdiplusFontCollection.h"
        #include "GdiplusFontFamily.h"
        #include "GdiplusFont.h"
        #include "GdiplusBitmap.h"
        #include "GdiplusImageCodec.h"
    
    }; // namespace Gdiplus
    
    #include <poppack.h>    // pop structure packing back to previous state
    
    #endif // !_GDIPLUS_HPP

    �a m'a sembl� un peu bizard , je c pas ce que tu en penses ..

    �+

  17. #17
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    ce que tu me montres c'est pas StdAfx.h mais GdiPlus.h

    et �a veut dire que si le symbole GDIPVER n'est pas d�fini, il d�finit le symbole avec la valeur 0x100 ce qui correspond � la version 1.0 par d�faut

    et pour utiliser les effets il faut au moins la version 1.1 donc 0x110

    donc si le symbole n'est pas d�fini, c'est version 1.0 par d�faut, or nous on veut 1.1

    donc faire le #define qui va bien en amont de #include <gdiplus.h>

    @+

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    oui en effet, d�sol� je me suis tromp�e!
    par contre si g bien compris, il faut changer dans gdiplus.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #ifndef GDIPVER
    #define GDIPVER 0x0100
    #endif
    par �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #ifndef GDIPVER
    #define GDIPVER 0x0110
    #endif
    je suis d�sol�e si je comprends pas directement

    sinon je mets tjs le #define GDIPVER 0x0110 dans stdafx.h ?

    merci pour tout!!

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par d�faut
    si c'est �a je l'ai fait et �a detecte encore plus d'erreurs

  20. #20
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    ne jamais modifier un fichier de la SDK !
    donc pas touche � GDIPLUS.H

    quelque part dans ton programme tu fais bien un #include <gdiplus.h> ?
    ben juste la ligne d'avant tu tapes :

    #define GDIPVER 0x110

    c'est tout


    @+

Discussions similaires

  1. R�ponses: 7
    Dernier message: 05/10/2005, 11h29
  2. Question sur Visual C++ et excel
    Par Super seb dans le forum MFC
    R�ponses: 3
    Dernier message: 07/09/2005, 17h02
  3. cours dll sur visual c++
    Par hiko-seijuro dans le forum MFC
    R�ponses: 6
    Dernier message: 22/07/2005, 09h28
  4. projet visual 6 sur visual 2003
    Par Kara dans le forum MFC
    R�ponses: 4
    Dernier message: 29/04/2005, 09h35
  5. contr�le data sur visual basic 6.0
    Par Silent Thunder dans le forum D�cisions SGBD
    R�ponses: 2
    Dernier message: 29/03/2005, 19h29

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