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

C

 > 

Windows

 > 

Multimédia

 > 

Visualiser une image codée dans un tableau de BYTE en api.


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

Visualiser une image codée dans un tableau de BYTE en api.

dimanche 2 juillet 2006 à 23:30:34 | Visualiser une image codée dans un tableau de BYTE en api.

Tobii

C'est surement quelque chose de très simple à faire, je veux juste afficher dans une fenetre windows un tableau de BYTE (unsigned char) avec chaque BYTE représentant le niveau de gris d'un pixel (image codée sur 256 niveaux de gris donc). Je débute en api donc je sais pas trop quelle est la façon qui demande le moins de calculs, une solution pourrait etre de créer une image bitmap a partir de ce tableau de BYTE puis d'utiliser loadbitmap mais le problème c que ça risque d'etre trop long (il faut que j'affiche plusieurs images par seconde). Si quelqu'un pourrait me donner 2,3 mots- clé  ou noms de fonctions à utiliser j'irai chercher par moi meme après merci.

dimanche 2 juillet 2006 à 23:40:58 | Re : Visualiser une image codée dans un tableau de BYTE en api.

vecchio56

Administrateur CodeS-SourceS
Tu crées une bitmap dans un DC (CreateCompatibleBitmap/CreateCompatibleDC)
Puis avec SetDIBits tu modifies les bits de la bitmap à partir de ton tableau (dans le BITMAPINFOHEADER tu mets biBitCount à 8 puisque tu es en niveaux de gris)

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 3 juillet 2006 à 01:14:00 | Re : Visualiser une image codée dans un tableau de BYTE en api.

Tobii

merci pour la réponse aussi rapide, j'ai pas encore trop testé mais d'après ce que j'ai lu dans l'help des différentes fonctions que tu m'as donné je verrai bien qq chose comme ça :


HDC hdc = GetDC(hwnd) ; // hwnd objet de type HWND : ma fenetre principale.
hdc = CreateCompatibleDC(hdc);

(par contre j'ai pas trop compris si cette fonction est necessaire et son interet).

HBITMAP  hbmp = CreateCompatibleBitmap( hdc,     w  ,  h );  //w et h les dims de mon image.


SetDIBits(
   hdc,                  
  hbmp,             
  UINT uStartScan,         j'ai pas compris ce que c'est
  UINT cScanLines,          non plus
  (BYTE)
image               //mon tableau de BYTE
  CONST BITMAPINFO *lpbmi,  
//structure contenant la structure 
BITMAPINFOHEADER dont tu parles ? dans l'help ils disent d'utiliser plutot la structure  BITMAPV5HEADER  pour windows 98 ou + (jai xp)
  UINT fuColorUse          //si on utilise ou pas la palette de BITMAPINFO
);


pour la palette dans bitmapinfo comment on renseigne le champ RGBQUAD          bmiColors[1]  ?

imaginons j'ai un tableau UINT palette[256] qui donne les composantes RGB associé à chaque index (dans mon cas en gris pour l'index i, on aura les composantes rouge = vert = bleu = i)

je tape bitmapinfo.bmiColors[1] = ?

enfin derniere question dans BITMAPV5HEADER (ou BITMAPINFOHEADER) il faut remplir comment le premier champ DWORD  biSize ? ils disent nombre de byte requis pour la structure ?? autant faire un sizeof(BITMAPV5HEADER) non
lundi 3 juillet 2006 à 10:06:27 | Re : Visualiser une image codée dans un tableau de BYTE en api.

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Je ense qu'il faut bien utiliser la structure BITMAPINFO, ca suffit ici
Pour bmiColors, il faut qu'il fasse 256 bytes (tu dois donc réserver assez de place), et remplir de tableau avec toutes les valeurs (i, i, i) pour i allant de 0 à 255
Pour biSize, c'est effectivement sizeof qu'il faut utilsier, c'est un truc courant qu'il faut faire

Par contre, tu peux utiliser la fonction SetDIBitsToDevice, ce qui t'évite de créer une bitmap intermédiaire
Pour uStartScan, c'est la première ligne a afficher, donc 0
Pour cLines, c'est le nombre de lignes, donc la hauteur de ton image

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 3 juillet 2006 à 19:44:31 | Re : Visualiser une image codée dans un tableau de BYTE en api.

Tobii

c cool j'y arrive maintenant. merci pour les réponses rapides ça m'a beaucoup aidé.

J'ai même trouvé d'autres fonctions utiles comme BitBlt  bien pratique pour faire la mise à jour à chaque changement effectué sur le tableau de BYTE.



Cette discussion est classée dans : image, tableau, api, byte, codée


Répondre à ce message

Sujets en rapport avec ce message

URGENT Prb Image DIB [ par pirate75000 ] J'ai une dll qui me crée une dib d'une image,comment placer cette dib dans un tableauet comment replacer se tableau dans une dibMerci template? [ par payen ] Salut a tous,je programme actuellement une bibli de traitement d'images en C++, et j'ai un p'tit souci. En fait, j'ai cree une classe image qui contie Inserer une image en API [ par Adeon ] Salut! je sais afficher une image dans une fentre mais j'aimerai savoir comment on fait pour que la couleur blanche ( par exemple ) ne se superpose pa Produit de convolution 2D [ par dartal ] Salut ! Je dois realiser un produit de convolution pour pouvoir filtrer une image avec un masque ( un tableau de taille 3*3 )... J'ai reussi à Image sur bouton (API win32) [ par LordBob ] Bonjour a tous,voila j'essaie de mettre une image sur un bouton de mon dialog, je procede donc comme ceci:HANDLE hImage;...hImage = LoadImage(hInst, " Gros Ennui [ par oRTEEZ ] Bonjour, bonsoir,Voila mon souci, je dois faire un programme qui doit accepte un entre divers formats d'images. Puis dessiner dessus un rectangle, pui tableau [ par mayalen ] je veux retourner un tableau dans une fonction comment faire????? CEvenement::ShortToByte16( short sNombre){ BYTE bTableanByte16[16]; for(int i=0; fonction GetClipboardData() [ par doggyk ] Bonjour,Je souhaite faire du traitement d'image à partir d'une webcam.Je suis sur plusieurs pistes en même temps et certaines avancent bien (merci à m BMP [ par 511 ] Bon je crois que j'ai déjà poser la question mais mon probleme n'est toujours pas résolu donc je la repose on sait jamais.Tout d'abords je précise que Tableau d'une image venant d'une webcam [ par doggyk ] Bonjour!Je cherche à récupérer des images d'une webcam afin de trouver le centre d'un point lumineux. Ceci doit se faire à une vitesse rapide. Mon ob


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

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