Images Bitmap sur Win32

aziz1803 Messages postés 7 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 29 avril 2010 - 18 févr. 2010 à 11:24
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015 - 19 févr. 2010 à 16:43
bonjour,
je fais de l'acquisition d'images à partir d'une caméra Basler, et je veux afficher les images que je récupère sur une fenêtre Bitmap.
j'ai à peu près fait toutes les étapes sauf que je veux maintenant afficher les images successivement sur la même fenêtre qui doit être actualisée lorsque j'obtiens une image pour avoir un effet video.
Quelqu'un a une idée???

6 réponses

dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015
18 févr. 2010 à 17:35
Tu récupères déjà les images, ou pas ?


Coin coin !
0
aziz1803 Messages postés 7 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 29 avril 2010
19 févr. 2010 à 11:27
oui oui je récupères les images dans un tableau de valeurs.
alors au début je fonctionnais avec des fonctions DWORD WINAPI qui font successivement l'acquisition, la reconstitution et l'affichage mais avec un int main() normal (qui lance une fenêtre DOS à l'exécution), maintenant je suis passé à un WINMAIN et j'ai réussi à ouvrir une seule fenêtre mais je peux pas y mettre des images.
0
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015
19 févr. 2010 à 13:02
il faut que tu overloades la fonction OnPaint de ta fenetre, et dans celle là, tu dessines ton bitmap avec un CPaintDC


Coin coin !
0
aziz1803 Messages postés 7 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 29 avril 2010
19 févr. 2010 à 15:36
tu peux me passer un bout de code (un exemple d'utilisation de OnPaint() et CPaintDC())Stp.
Merci beaucoup.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aziz1803 Messages postés 7 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 29 avril 2010
19 févr. 2010 à 15:40
Pour l'utilisation de CPaintDC, il faut que l'objet de la fenêtre soir défini comme CWnd, alors que moi je travaille avec HWND, donc je dois modifier touts mes déclarations en CWND?
0
dragonjoker59 Messages postés 92 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 23 septembre 2015
19 févr. 2010 à 16:43
Euh... Tu n'as donc pas surclassé un CWnd ou un CFrameWnd ? A ce moment là, je ne sais pas trop comment tu peux te débrouiller.Je pense que pour pouvoir dessiner ton contenu dans une fenêtre, tu dois écrire une classe qui étend un CWnd ou un CFrameWnd. Tu surcharges la fonction OnPaint et tu effectues ton dessin dans ce OnPaint :
class CMaFenetre : public CWnd
{
private:
DECLARE_DYNCREATE( CMaFenetre); // Pour pouvoir la créer avec Create

public:
CMaFenetre(){ ... }
~CMaFenetre(){ ... }
void OnPaint( HDC hdc )
{
BITMAP bm;
PAINTSTRUCT ps;

HDC hdc = BeginPaint( m_hWnd, & ps);

HDC hdcMem = CreateCompatibleDC( hdc);
HBITMAP monBitmap; // l'image que tu as récupérée

GetObject( monBitmap, sizeof( bm), & bm);

BitBlt( hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);

SelectObject (hdcMem, monBitmap);
DeleteDC( hdcMem);

EndPaint( hwnd, & ps);
}
};
IMPLEMENT_DYNCREATE( CMaFenetre, CWnd);

BEGIN_MESSAGE_MAP( CMaFenetre, CWnd)
ON_WM_PAINT() // Pour récupérer l'évenement OnPaint
END_MESSAGE_MAP()


Un truc comme ça, ça devrait aller (peut-être), à toi de le revoir et de l'adapter ;)


Coin coin !
0
Rejoignez-nous