Bitmap : Créer un bitmap 24b ???

cs_alcarbone Messages postés 1 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 4 janvier 2003 - 4 janv. 2003 à 18:10
Carolivier Messages postés 8 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 25 mars 2003 - 23 mars 2003 à 19:37
Je suis en train de me casser la tête pour créer un bitmap visible 24b .
Avant de tester ceci je passer sur une définition moyenne (16b sur XP).

J'utilise pour créer l'image :
hBitmap = (HBITMAP)::CreateBitmap(m_iSourceWidth,m_iSourceHeight,1,24,NULL);

il ne se passe rien lors de l'affichage de l'image manipulée dans une routine basée sur :

dwValue=mybmp.GetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
.
.
dwValue = mybmp.SetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
mybmp.GetBitmap(&bmpX);
memdcX.SelectObject(mybmp);
pDC->BitBlt(0,0,bmpX.bmWidthBytes,bmpX.bmHeight ,&memdcX,0,0,SRCCOPY);

par contre dans ce mode si j'utilise : (HBITMAP)::CreateBitmap(m_iSourceWidth,m_iSourceHeight,1,16,NULL)
Ca marche mais en format. 256 couleur.

En mode 32b pas de problème .
Bien sur la routine tient compte du type RGB/pixel

Si je charge un ressource créée en 24b avec (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"new.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);
ca marche partout même en version 32b ????

Avez vous une idées ?
Ou est-il possible d'utilise la ressource comme nouveau bitmap et la transformer pour d'autre bitmap format de bitmap (h /L différente) ?

merci de vos réponse et meilleur voeux a tous
Al

1 réponse

Carolivier Messages postés 8 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 25 mars 2003
23 mars 2003 à 19:37
-------------------------------
Réponse au message :
-------------------------------

> Je suis en train de me casser la tête pour créer un bitmap visible 24b .
> Avant de tester ceci je passer sur une définition moyenne (16b sur XP).
>
> J'utilise pour créer l'image :
> hBitmap = (HBITMAP)::CreateBitmap(m_iSourceWidth,m_iSourceHeight,1,24,NULL);
>
> il ne se passe rien lors de l'affichage de l'image manipulée dans une routine basée sur :
>
> dwValue=mybmp.GetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
> .
> .
> dwValue = mybmp.SetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
> mybmp.GetBitmap(&bmpX);
> memdcX.SelectObject(mybmp);
> pDC->BitBlt(0,0,bmpX.bmWidthBytes,bmpX.bmHeight ,&memdcX,0,0,SRCCOPY);
>
>
> par contre dans ce mode si j'utilise : (HBITMAP)::CreateBitmap(m_iSourceWidth,m_iSourceHeight,1,16,NULL)
> Ca marche mais en format. 256 couleur.
>
> En mode 32b pas de problème .
> Bien sur la routine tient compte du type RGB/pixel
>
> Si je charge un ressource créée en 24b avec (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"new.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);
> ca marche partout même en version 32b ????
>
> Avez vous une idées ?
> Ou est-il possible d'utilise la ressource comme nouveau bitmap et la transformer pour d'autre bitmap format de bitmap (h /L différente) ?
>
> merci de vos réponse et meilleur voeux a tous
> Al
>
>
>
>
0
Rejoignez-nous