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

Windows Discussion :

Equivalent de StretchBlt pour GDI+ ?


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Equivalent de StretchBlt pour GDI+ ?
    Bonjour,

    Je développe une interface graphique, dans laquelle je suis en train d'implémenter une fonction de zoom sur les différentes zones de mon interface. J'utilise GDI et GDI+.
    L'idée est de rendre toute l'image sur un HBITMAP de taille 1, puis de le "mapper" sur un autre HBITMPA, qui lui dépend du facteur de zoom. Pour cela, j'utilise StretchBLT, avec l'option HALFTONE... mais je trouve ça relativement laid !
    J'ai vu qu'il était possible d'utiliser du filtrage bilinéaire avec GDI+, mais je ne trouve pas la fonction qui permet de récupérer un HBITMPA dans une Image GDI+ par exemple. Cela me permettrait ensuite d'utiliser la fonction DrawImage de GDI+...

    Que pensez-vous de cette idée ? Et comment copier un HBITMPA dans une Image ? Y'aurait-il une solution plus simple, "directe" de HBITMPA à HBITMPAP comme peut le faire StretchBlt, mais en utilisant du filtrage bilinéaire ?

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    ?? Avec l'objet Bitmap ?
    Bitmap::Bitmap Constructor

    --------------------------------------------------------------------------------

    Creates a Bitmap object based on a handle to a Windows Microsoft Windows Graphics Device Interface (GDI) bitmap and a handle to a GDI palette.

    Syntax

    Bitmap( HBITMAP hbm,
    HPALETTE hpal
    );
    Parameters

    hbm
    [in] Handle to a GDI bitmap.
    hpal
    [in] Handle to a GDI palette used to define the bitmap colors if hbm is not a device-independent bitmap (DIB).
    Return Value

    No return value.
    Remarks

    You are responsible for deleting the GDI bitmap and the GDI palette. However, you should not delete the GDI bitmap or the GDI palette until after the GDI+ Bitmap object is deleted or goes out of scope.

    Do not pass to the GDI+ Bitmap constructor a GDI bitmap or a GDI palette that is currently (or was previously) selected into a device context.
    Si tu veux faire un filtrage bilinéaire et que tu as un HBITMAP , tu peux accéder aux bits avec GetDIBbits par exemple, faire tes opérations de filtrage comme tu le souhaites.
    As-tu essayé les différentes possibilités de SetStretchBltMode() ? Avec COLORONCOLOR par exemple ?

Discussions similaires

  1. [XSD] Equivalent du <choice> pour les attribut
    Par BigOne55 dans le forum Valider
    Réponses: 6
    Dernier message: 14/03/2014, 19h24
  2. [C#]Equivalent de SaveFileDialog pour webform
    Par Giill dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/04/2007, 09h43
  3. Equivalent à JML / JUnit pour le C++
    Par meuns dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 09/12/2004, 15h16
  4. equivalent SELECT DISTINCT pour MyBase?
    Par chrisou31 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 19h33

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