begin process at 2012 05 30 02:13:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Probleme avec getpixel


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

Probleme avec getpixel

samedi 12 juin 2004 à 12:09:35 | Probleme avec getpixel

SnOOpss

Bonjour tout le monde !!
Voila g voulu modifier une fonction !!
void test (HBITMAP hBmp) {
if (!hBmp) return 0;
........
DC hdcc = NULL;
hdcc = CreateCompatibleDC(NULL);
SelectObject(hdcc, hBmp);
.........
for (int y = 0; y < bm.bmHeight; y++)
{
for (int x = 0; x < bm.bmWidth; x++)
{
int x0 = x;
while (x < bm.bmWidth)
{
char chaine[5];
itoa(GetPixel(hdcc,x, y),chaine,10);
MessageBox (NULL, chaine, "ee", MB_OK);
if(GetPixel(hdcc,x, y) == RGB(0,0,0) )
x++;

............
et la fonction getpixel me retourne toujour -1 ???
G vu que ca voulait dire ke je me trouvais hors des limites mais je ne voit pas trop ou j'ai fait l'erreur !!
samedi 12 juin 2004 à 17:20:13 | Re : Probleme avec getpixel

SnOOpss

G trouvé l'erreur mais pas la solution !!
En fait Le HDC se fait mal !!
HDC hdcc = NULL;
hdcc = CreateCompatibleDC(NULL);
if (hdcc == NULL) { MessageBox (NULL, "erreur0","ee", MB_OK); }
if (SelectObject(hdcc, hBmp) == NULL) { MessageBox (NULL, "erreur1","ee", MB_OK); }
En faisant ca j'ai la boite de dialogue erreur1 !!
dimanche 13 juin 2004 à 21:12:40 | Re : Probleme avec getpixel

SnOOpss

J'ai essayé avec une autre methode

BITMAP bm;
GetObject(hBmp, sizeof(bm), &bm); // met les infos d'en tete du bitmap dans bm

BITMAPINFO bi;
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = bm.bmWidth;
bi.bmiHeader.biHeight = bm.bmHeight;
bi.bmiHeader.biPlanes = bm.bmPlanes;
bi.bmiHeader.biBitCount = 24;
bi.bmiHeader.biCompression = BI_RGB;

DWORD dwWidthBytes = 4*((3*bm.bmWidth+3)/4);
DWORD dwImageSize = dwWidthBytes*bm.bmHeight;
LPBYTE lpBits = new BYTE[dwImageSize];

HDC hdc = GetDC(NULL);
int testt = GetDIBits(hdc, hBmp, 0, bm.bmHeight, &lpBits, &bi, DIB_RGB_COLORS);

Et j'ai un autre probleme avec la fonction GetDIBits : parametre incorect !!

Help !!!
lundi 14 juin 2004 à 21:15:23 | Re : Probleme avec getpixel

ymca2003

pour la création du DC compatible, utilise celui de l'écran :
HDC hScreenDC = GetDC(NULL);
HDC hdc = CreateCompatibleDC(hScreenDC);
..

le reste comme ta première solutions

solution avec getDiBbits : donner directement lpBits et pas l'adresse de cette variable :
GetDIBits(hdc, hBmp, 0, bm.bmHeight, lpBits, &bi, DIB_RGB_COLORS);

récupérer les pixels en 32 bits/pixel simplifi l'accès :

// tout d'abord on récupère des informations sur la taille du bitmap
BITMAP bmpInfo;
GetObject(hBitmap, sizeof(BITMAP), &bmpInfo);

// allocation mémoire. On va récupérer le bitmap en 32 bits/pixel pour simplifier
// comme cela, on sera sur que chaque ligne du bitmap sera codé sur un nombre
// d'octets multiple de 4. Si le bitmap n'est pas bottom-up (cas le plus fréquent)
// mais top-down, bmpInfo.bmHeight est négatif.
LPBYTE lpBits = new BYTE[4*bmpInfo.bmWidth*bmpInfo.bmHeight];

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

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

mercredi 16 juin 2004 à 11:29:00 | Re : Probleme avec getpixel

SnOOpss

Nickel merci beaucoup !!!
Pour la partie avec getpixel ca deconne toujours, si quelqu'un trouve pourquoi ca m'interesse toujours par curiosité mais comme la seconde methode marche et quelle est 10 fois plus rapide en ce qui me concerne mon probleme est resolu !!!
Et merci aussi pour les modif de code !!!


Cette discussion est classée dans : int, getpixel, bm, hbmp, hdcc


Répondre à ce message

Sujets en rapport avec ce message

pb noir et blanc [ par c2millet ] Voila mon probleme j'insere une bitmap sur ma page d'impression mais le pb c que cette derniere et imprimer en noir et blanc et deplus elle est à l'en N'affiche rien [ par c2millet ] C encore moi avec mon pb de BITMAP. Mon code compile mais n'affiche pas ma bitmap si qqun peut m'aiderMerci.------------------------------------------ Getpixel et Setpixel trop lents! :( [ par Omeya ] Bonsoir à tous,Depuis quelques temps, j'essaye de réaliser un capteur d'écran en temps réel et les seuls instructions que je sais vraiment utiliser so Gérer miex la memmoire pour le calcul matriciel [ par Stiko ] salut,j'utilise une classe faite en C++ pour les calculs matriciels de grand taille la classe est le suivant:c'est le fichier .h[quote]/* Matrix.h*/#i Gérer mieux la memoire [ par Stiko ] salut,j'utilise une classe faite en C++ pour les calculs matriciels de grand taille la classe est le suivant:c'est le fichier .h[code]/* Matrix.h*/#if progress bar & convertage CString to int [ par unionx ] salut je veux savoir si c'est possible MAX et MIN de progress bar dans visualstudio MFC project exemple: la langeur de la bar de progress en vb c'est: Struct [ par wxccxw ] salut, je fait un jeu, et j'utilise pour le server une struct qui contiendra quelque info sur le joueur.j'ai deux fonction  :PlayerActivate()  // pour probleme dans une ecriture de fichier [ par hisoka56 ] bon salut a tous, j'ai un petit probleme d'ecriture dans un fichier dans uen fonction qui permet de sauvegarder un niveau voila le fichier de niveaux Allocation tableau dynamique ds structure [ par chental ] Salut à tous,Sauriez vous me dire comment allouer dynamiquement un tableau dans une structure ?J'arrive à faire l'essentiel mais dans la structure je Sdl [ par M5i9k ] Bonsoir,je voudrais utiliser la librairie sdl pour tester un peu mais j'obtient l'erreur de link suivante : error LNK2019: symbole externe non résolu


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,763 sec (3)

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