begin process at 2012 05 30 20:00:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Multimédia

 > 

[Win32] lire pixel par pixel


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

[Win32] lire pixel par pixel

jeudi 21 septembre 2006 à 19:40:40 | [Win32] lire pixel par pixel

deck_bsd

Membre Club
Bonjour a tous,


Voila je cherche à créer un programme qui compare deux images, il faut donc pour cela que je lise les images pixel par pixel, hors n'ayant aucune notion des API traitent les images, je me demande par ou commencer.

Merci d'avance pour votre aide.
jeudi 21 septembre 2006 à 20:18:08 | Re : [Win32] lire pixel par pixel

mogwai93

avec GetDibits ?
http://www.cppfrance.com/codes/GET-SETDIBITS_38788.aspx

jeudi 21 septembre 2006 à 20:18:43 | Re : [Win32] lire pixel par pixel

Joky

Membre Club
HBITMAP hBmp1, hBmp2;

//ici tu calcules la taille du tableau nécessaire pour récupérer les bits

et ensuite

GetBitmapBits(...)


ULARGE_INTEGERJokyQi=QI("Joky"

jeudi 21 septembre 2006 à 20:20:23 | Re : [Win32] lire pixel par pixel

Joky

Membre Club
Et ya Petzold qui parle de ça quand même
Je l'ai lu y'a pas longtemp C'est super intéressant

ULARGE_INTEGERJokyQi=QI("Joky"

vendredi 22 septembre 2006 à 09:22:17 | Re : [Win32] lire pixel par pixel

buno

Administrateur CodeS-SourceS
Tu veux comparer 2 images? Oui, mais 2 images "fichier" ou 2 images "dessinées"?
Dans le 1er cas, tu peux aller faire un tour sur ma source qui ouvre des fichiers BMP et qui fait qques traitements dessus

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
samedi 23 septembre 2006 à 13:38:52 | Re : [Win32] lire pixel par pixel

deck_bsd

Membre Club
Merci pour vos réponses, je vous tien au courant. Oui buno, 2 image fichier ;)
samedi 23 septembre 2006 à 15:39:28 | Re : [Win32] lire pixel par pixel

deck_bsd

Membre Club
Bon aparement je récupère bien les pixel :p car aucune fonctions ne renvoie d'erreur. Mais je voulai savoir, je les récupères dans un tableau d'int, c'est bon ? car sur la msdn c'est un pointeur de type void , donc de n'importe lequel, mais il y a t-il un type préfèrable pour récupérer et après comparer les pixels?
samedi 23 septembre 2006 à 16:44:32 | Re : [Win32] lire pixel par pixel

deck_bsd

Membre Club
Ben cela ne fonctionne pas, aparement je récupère bien les pixel des deux images, mais lors de la comparaison si j'en change un il me dit quand mm que les images sont identiques :s . Voici comment je fait en gros :


/* image 1. */           
             HBITMAP hBmp = LoadImage(GlobalHInstance,"signature.bmp",IMAGE_BITMAP,100,160,LR_LOADFROMFILE);
             HANDLE haFile = CreateFile("signature.bmp",GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
             if(haFile == INVALID_HANDLE_VALUE)MessageBox(hwnd,"fuck off","rated",MB_OK);
             DWORD dwSize = GetFileSize(haFile,NULL);
             CloseHandle(haFile);
             iTabPixel = (char*) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwSize);
             if(GetBitmapBits(hBmp,dwSize,iTabPixel) == 0)MessageBox(hwnd,"GetBitmapBits()","error",MB_OK);
            
            
             /* image 2. */
            
             HBITMAP hBmp2 = LoadImage(GlobalHInstance,"signature2.bmp",IMAGE_BITMAP,100,160,LR_LOADFROMFILE);
             HANDLE haFile2 = CreateFile("signature2.bmp",GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
             if(haFile2 == INVALID_HANDLE_VALUE)MessageBox(hwnd,"fuck off","rated",MB_OK);
             DWORD dwSize2 = GetFileSize(haFile2,NULL);
             CloseHandle(haFile2);
             iTabPixel_2 = (char*) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwSize2);
             if(GetBitmapBits(hBmp2,dwSize2,iTabPixel_2) == 0)MessageBox(hwnd,"GetBitmapBits()","error 2",MB_OK);
            
            
             //if(dwSize != dwSize2)MessageBox(hwnd,"Differents sizes","error",MB_OK);
             //else{
                  int x,y;
                  for(x = 0 , y = 0; x < dwSize ,y < dwSize2 ; x++ , y++){
                          if((iTabPixel[x] != iTabPixel_2[y])){
                                          MessageBox(hwnd,"Not same","not",MB_OK);
                                          break;}
                  }
             MessageBox(hwnd,"same","OK",MB_OK);
             //}

            
             HeapFree(GetProcessHeap(),0,iTabPixel);
             HeapFree(GetProcessHeap(),0,iTabPixel_2);

Merci d'avance.


samedi 23 septembre 2006 à 16:55:14 | Re : [Win32] lire pixel par pixel

SAKingdom

Membre Club
Attend, tu ne récupère pas les pixels là. Tu ne fais que récupéré le fichier lui même et il n'y a pas que des pixels dans un bitmap. Je te suggère vivement, pour récupéré les pixel, d'utiliser GetDIBits. Tu pourra ainsi stocker les pixels de tes 2 fichiers dans 2 buffers différents et comparer c'est buffer.

En passent, la taille requis pour un buffer de pixel peut-être suppérieur au tas du processus. Il faudra envisager l'utilisation de VirtualAlloc et VirtualFree pour ça.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

samedi 23 septembre 2006 à 16:57:23 | Re : [Win32] lire pixel par pixel

SAKingdom

Membre Club
Ah pardon, je reformule:

Tu ne fais que récupérer le fichier lui même et il n'y a pas que des pixels dans un fichier bitmap

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution


1 2 3

Cette discussion est classée dans : images, lire, pixel, win32


Répondre à ce message

Sujets en rapport avec ce message

l'API win32 sait-elle lire? [ par supergrey ] Bonjour, je voudrais savoir s'il est possible de récupérer le texte visible dans les page web que je visite sur le net avec un programme.Merci. Superposition d'images [ par aujeanfr ] Bonjour,Je dois superposer 2 images aussi bien en BMP qu'en JPG et sans mélange des couleurs : 1 image par dessus une autre.Exixte-t'il des fonctions Comparaison d'images jpeg (obtenir le nombre de pixel different [ par chasse18 ] Bonjour j'utilise Borland Builder C++ et je voudrais savoir comment faire pour comparer deux images Jpeg et savoir le nombre de pixel qui diffère.Merc lire des images BMP [ par b_electronique ] BonjourJe travaille avec vc++ 6 et la biblio cximage , J’ai développé une application, quelle me permet de lire</STRO lire une image pixel par pixel [ par diable007 ] svp aide moi à savoir comment lire une image bmp pixel par pixel svp donne moi un algorithme en c++ pour faire ça en utilisant FreeImage ou FreeImageP Win32 et les fichiers [ par platon179 ] Bonjour, j'ai un petit souci pour lire les fichiers texte sous windowsComment faut-il faire pour lire une seule ligne complète d'un fichier texte, un images Bitmap sur Win32 [ par aziz1803 ] 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 à Lire tags & mots de fichiers (images) ? [ par ndubien ] Bonjour, Je recherche un moyen de lire les mots clés d'un fichier image, sa description, ses commentaires, notation... bref tout ce que contient une Compression d'images [ par kadifateh ] salut, je vous savoir comment je peux creer un prg en c/c++ qui permer de diviser l'image en blocs de 2*2 pixel. (j utilise un algorithme qui opére s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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

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