begin process at 2012 05 29 16:06:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Pixel vide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pixel vide

dimanche 3 juillet 2005 à 00:09:39 | Pixel vide

sabran

Salut,

Je veux lire la valeur RGB d'un pixel avec GetDIBits. J'ai pris un code que j'ai vu plusieurs fois sur le forum. Tout marche sauf quand je veux savoir la valeur dans mon tableau lbBits je reçois toujours 0.

Si quelqu'un peux m'aider c'est apprécier.

Voici mon code :


//je pars d'un boutton
HDC hdc;
hdc = CreateDC("DISPLAY", 0, 0, 0);

//je crée le bitmap à partir du hdc
  int dwWidth, dwHeight;   
  dwWidth = GetDeviceCaps(hdc, HORZRES);
  dwHeight = GetDeviceCaps(hdc, VERTRES);
  HBITMAP hbmp = CreateCompatibleBitmap(hdc, dwWidth, dwHeight);

//j'appelle ma fonction d'analyse de l'image
  AnalyseDIB(hbmp);

//la fonction en question
int AnalyseDIB(HBITMAP hbmp)
{

int RED, GREEN, BLUE, x, y;

BITMAP bmp;
GetObject(hbmp, sizeof(BITMAP), &bmp);

LPBYTE lpBits = new BYTE[4*bmp.bmWidth*bmp.bmHeight];

//structure bitmapinfo
BITMAPINFO bi;
memset(&bi, 0, sizeof(BITMAPINFO));
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = bmp.bmWidth;
bi.bmiHeader.biHeight = bmp.bmHeight;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biCompression = BI_RGB;

// récupération pixels
HDC hdc = GetDC(NULL);
x = GetDIBits(hdc, hbmp, 0, bmp.bmHeight, lpBits, &bi, DIB_RGB_COLORS);
ReleaseDC(NULL, hdc);

//et là je bloque, toujours une valeur de zéro :
RED = lpBits[500];//le chiffre 500 est pris au hasard

//j'affiche dans un message box et j'ai toujours zéro

Quelqu'un comprend pourquoi?

Merci

dimanche 3 juillet 2005 à 02:37:53 | Re : Pixel vide

sabran



J'ai trouvé!

C'était l'indice de mon tableau qui posait problème. À cause de Bilou-Microshit. J'explique. J'ai essayé de lire mon tableau avec des int au hasard parce que la vrai formule provoquait une erreur système(du genre voulez-vous envoyer votre rapport d'erreur à bilou).

La formule était lpBits[4*dwWidth*(dwHeight-1-i)+4*j+2].

Sa fesait planter le programme je sais pas pq. J'ai juste fait faire le calcule avant le tableau.
x=4*dwWidth*(dwHeight-1-i)+4*j+2;
lpBits[x];

Bon c'est réglé, merci quand même.  (Vous avez une idée de ce qui est arrivé??)


Cette discussion est classée dans : bi, bmiheader, hdc, bmp, hbmp


Répondre à ce message

Sujets en rapport avec ce message

API :: BMP -> RAM !! WARNING !! [ par JackosKing ] Bon voilà, j'ai fait un projet qui peut affficher des fenetres.au debut les fenetres étaient normale (le progr prenait 800Ko en ram pour 2 fenêtres), Une sorte de capture d'image... [ par tsc ] Bonjour,Voilà j'ai un petit problème avec une source qui permet de capturer l'image de sawebcam. source = http://www.cppfrance.com/code.aspx?ID=24541M Dessiner un Rectangle [ par SnOOpss ] bonjour tout le monde, vla le probleme :HBITMAP hbmp = (HBITMAP)LoadImage(0,"c:\\logo.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);HDC hdc;hdc = GetWindowDC Probleme avec une fonction de rotation [ par SnOOpss ] voila ma fonction HBITMAP rotate90(HBITMAP hbmp) { BITMAP bm; GetObject((HBITMAP)hbmp, sizeof(bm), &bm); BITMAPINFO bi,biNew; biNew.bmiHeader.biSiz Récupération des pixels d'un DC [ par hilairenicolas ] Bonjour,Je dispose d'un DC où je voudrais récuperer le tableau de byte correspondant aux pixels qui le composent.Je me suis fortement inspiré de la so disparition de mon bitmap. [ par oRTEEZ ] Voila j'ai une fenetre dans lequel je load mon un bitmap al'aide de la fonction suivante. Mon probleme es t que si je passe sur un autre prog mon imag Modification de fichier BMP [ par titio ] Bonjour,Je souhaite afficher des images bmp, tout en ayant la possibilité de modifier ce fichier. Pour cela, je le charge en memoire, et souhaite donc Lire le buffer de pixels a partir d'un HBITMAP [ par Kazuya ] Bonjour,j'ai un probleme pour passer un Bitmap en 32bpp,je charge le fichier en memoire (HBITMAP) et ensuite je tente de le modifier, mais le probleme Hwnd [ par T_Mehdi ] salut a tous .bon j'ai realiser une fonction qui permet douvrir des fichier bmp et les affichier sur un hwnd preci.le prob est que quand je reduit ou Manipulation de bitmap (SetDIBits) [ par _michel ] Encore une fois, j'ai un problème avec les bitmaps.J'ai bien cherché, en comparant avec un programme qui fonctionne, mais j'ai rien trouvé.Voila le co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,513 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales