begin process at 2012 05 29 14:41:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Parser un DC/DIB


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

Parser un DC/DIB

lundi 15 septembre 2003 à 10:19:09 | Parser un DC/DIB

Manson

Salut a tous,

voila je voudrais recuperer une capture d'ecran (ca j'ai reussi).
Ensuite je voudrais l'afficher sur le fond de ma fenetre, mais pas d'un coups, mais pixel par pixel.

Voila mon code, il m'affiche que du noir :

void Capture_Screen(HDC hdest)
{
HDC hDC;
SIZE size;
BITMAPINFO myBIT;
HBITMAP myBitmap;
UINT *pixel;
int x;
int y;

hDC = GetDC(NULL);
size.cx = GetSystemMetrics(SM_CXSCREEN);
size.cy = GetSystemMetrics(SM_CYSCREEN);
memset(&myBIT,0,sizeof(myBIT));
myBIT.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
myBIT.bmiHeader.biWidth=size.cx;
myBIT.bmiHeader.biHeight=size.cy;
myBIT.bmiHeader.biPlanes=1;
myBIT.bmiHeader.biBitCount=8;
myBitmap = CreateDIBSection(hDC, &myBIT, DIB_PAL_COLORS, (void **)&pixel, NULL, 0);
if (myBitmap)
{
for (y = 1; y < size.cy; y++)
for (x = 1; x < size.cx; x++)
SetPixel(hdest, x, y, COLORREF2RGB(pixel[x*y]));
}
else
MessageBox(NULL, "Can't create DIB Section", "error", MB_OK);
DeleteObject(myBitmap);
DeleteDC(hDC);
ReleaseDC(NULL, hDC);
}

Si quelqu'un a une idee .... d'avance merci.

Arno
lundi 15 septembre 2003 à 11:12:48 | Re : Parser un DC/DIB

garslouche

Si tu utilises DIB_PAL_COLORS pourquoi tu utilises du RGB après ?

Tu as essayé en mettant DIB_RGB_COLORS ?
lundi 15 septembre 2003 à 14:27:03 | Re : Parser un DC/DIB

Manson

en fait j'ai reussi a chopper les pixels en fesant directement un GetPixel sur le hdc.
Mais maintenant je voudrais ecrire ces pixels dans un DC differents, j'ai donc fait un :

HDC hdc_buff;

hdc_buff = CreateCompatibleDC(NULL);
et des SetPixel(hdc_buff, x, y, COULEUR);

Ensuite pour afficher :

BitBlt(hdc_main, 0, 0, size.cx, size.cy, hdc_buff, 0, 0, SRCCOPY);

mais voila rien, rien ne s'affiche dans ce DC.


Quelqu'un a une idee ?

Arno



-------------------------------
Réponse au message :
-------------------------------

> Si tu utilises DIB_PAL_COLORS pourquoi tu utilises du RGB après ?
>
> Tu as essayé en mettant DIB_RGB_COLORS ?
mardi 16 septembre 2003 à 07:39:52 | Re : Parser un DC/DIB

garslouche

J'mexcuse de demander pardon...mais là je ne te suis plus!
Je croyais que tu ne voulais pas utiliser SRCCOPY mais faire une copie pixel par pixel...
Si c'est pour faire du BitBlt tu n'as pas besoin de t'embêter avec un buffer!!!
mardi 16 septembre 2003 à 08:49:09 | Re : Parser un DC/DIB

Manson

Salut,

nan en fait, mon but etait d'arriver a chopper les pixels de n'importe kel moyen pour travailler dessus et les injecter dans un nouveau buffer. Traitement d'image un peu basique ...

voila, j'espere que maintenant tu comprend mieux.

Rno



-------------------------------
Réponse au message :
-------------------------------

> J'mexcuse de demander pardon...mais là je ne te suis plus!
> Je croyais que tu ne voulais pas utiliser SRCCOPY mais faire une copie pixel par pixel...
> Si c'est pour faire du BitBlt tu n'as pas besoin de t'embêter avec un buffer!!!


Cette discussion est classée dans : bmiheader, pixel, hdc, size, mybit


Répondre à ce message

Sujets en rapport avec ce message

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 bitmap pixel par pixel [ par Galmiza ] Salut,J'ai besoin d'afficher des images bitmaps pixel par pixel et non via le BitBlt.J'aimerais pouvoir acceder à ce qu'on appelerait la memoire video Comment utiliser SetPixel dans ma DLL ? [ par YoYoDev21 ] Bonjour,Je développe une DLL en C afin d'accélérer certain traitement fait dans un programme VB6.Entre autre, je voudrais que la DLL remplisse elle mê Pixel vide [ par 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 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 freeimage [ par valerymb ] salut à tous. J'ai un petit problème à vous soumettre.voilà. J'ai une image non sauvegardée sur le disque que j'affiche en utilisant les mfc (hdc, hbi redimensionnement bitmap et mémoire occupée [ par mogwai93 ] BonjourJ'ai une image bmp que je redimensionne avec StretchBlt pour qu'elle s'affiche dans la zone de mon choixor au niveau du gestionnaire des taches 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 erreur couleur pixel [ par DJtef ] Je cherche à récupérer les coordonnées et la couleur du pixel pointé par la souris, dans une simple console dos, sous Dev C++, mais j'ai les 2 message 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


Nos sponsors


Sondage...

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 : 0,390 sec (3)

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