Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2048 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Convertir GetPixel en RGB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Convertir GetPixel en RGB

n°41264
Alload
Posté le 20-06-2001 à 11:02:22  profilanswer
 

J'aimerais réaliser un bit mask d'une image bitmap en mettant FALSE pour les points dont la couleur est la couleur transparente définie et TRUE pour le reste.
 
Avez-vous une idée de comment faire ça?

 

[edit]--Message édité par Alload--[/edit]

mood
Publicité
Posté le 20-06-2001 à 11:02:22  profilanswer
 

n°41271
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 11:10:03  profilanswer
 

Ben... a la main :eek:
 
Tu peux faire un petit utilitaire qui charge une image x*y, qui demande la couleur transparente, et qui te sauvegarde un tableau de booleens x*y correspondant :??:

n°41283
darkoli
Le Petit Dinosaure Bleu
Posté le 20-06-2001 à 11:26:12  profilanswer
 

ben enfait c'est bete et mechant.  
 
Pour chaque pixel de l'image :
  Si il est  transparent alors mettre true
  Sinon mettre False

n°41292
Alload
Posté le 20-06-2001 à 11:43:46  profilanswer
 

Oui, mais comment faire pour connaitre la couleur de chaque pixel d'un bitmap?

n°41297
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 11:51:37  profilanswer
 

Ben ca depend de ton format d'image et de la maniere dont tu organise ca dans la memoire.
 
Simplement, si tu as un BMP 32 bit de taille w*h qui est stocke dans un unsigned int* image par exemple, tu fais simplement :
 
image[x+y*w] pour avoir la valeur du pixel (x,y) ??

n°41298
minusplus
Posté le 20-06-2001 à 11:53:29  profilanswer
 

je sens que c'est pas gagné ce topic... :D

n°41301
Alload
Posté le 20-06-2001 à 11:57:02  profilanswer
 

minusplus a écrit a écrit :

je sens que c'est pas gagné ce topic... :D




Pourquoi? :D
 
C'est simplement que je sais pas où son codé les couleurs d'un bitmap, si j'arrive à les trouver c'est bon c'est fini après je sais faire.

n°41302
darkoli
Le Petit Dinosaure Bleu
Posté le 20-06-2001 à 11:57:55  profilanswer
 

par exemple tu peux enregistrer ton image dans un tableaud'int 32bits (format RVBA par exemple). Tu codes ta couleur sur un int et le tour est joué. Il sufit ensuite de faire une comparaison  bete et mechante avec toutes les valeurs du tableau.

n°41303
Alload
Posté le 20-06-2001 à 12:04:53  profilanswer
 

Oui mais où je trouve l'int caractérisant la couleur du pixel, par exemple, 458*630?

n°41305
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 12:09:24  profilanswer
 

c ecrit dans mon post juste au dessus :sarcastic:

mood
Publicité
Posté le 20-06-2001 à 12:09:24  profilanswer
 

n°41306
darkoli
Le Petit Dinosaure Bleu
Posté le 20-06-2001 à 12:09:30  profilanswer
 

ben soit tu fais un tableau a deux dimensions : t[x][y], soit tu fais un tableau à une dimenseion : t[y*largeur_image+x] par exemple mais ca depends de la manière dont est chargée l'image.
 
Comment charge tu l'image ? Quel Format ?

n°41314
minusplus
Posté le 20-06-2001 à 12:29:21  profilanswer
 

darkoli a écrit a écrit :

 
Comment charge tu l'image ? Quel Format ?




ça c'est la question essentielle !

n°41329
Combi_A_Ve​ndre
Posté le 20-06-2001 à 13:13:47  profilanswer
 

Et bien déjà, il peut etre utile de connaitre le format bmp non?
http://members.aol.com/bellamyjc/fr/bmpfile.html
 
Après avoir épluché ça, ça ne devrait pas etre compliqué.
 
vw

n°41383
Alload
Posté le 20-06-2001 à 16:00:50  profilanswer
 

Ben voilà, c'est pas aussi simple, c'est comme je le pensais, il faut trier les infos contenues dans le fichier bitmap pour sortir les couleurs de chaque pixel. Je vais lire un peu de doc et essayer de trouver une méthode.

n°41454
Alload
Posté le 20-06-2001 à 18:27:11  profilanswer
 

Bon, j'ai trouvé des fonctions directement dans Windows pour ce que je cherche, mon code donne la valeur RGB d'un pixel d'un bitmap. J'ai juste un problème, j'ai fait un bitmap dont tous les pixels ont comme valeur RGB (50, 100, 150) et ma fonction me renvoit 9856050. Comment convertir ça en (50, 100, 150)?
 
Voilà le code:
 
#include <windows.h>
#include <iostream>
using namespace std;
 
///////////////////////////////////////////////////////////////////
 
int main()
{
 HDC hdcImage;
 HBITMAP hbm;
 
 char szBitmap[] = "bitmap.bmp";
 int x = 1024;
 int y = 768;
 long pixelvalue = 0;
 
 hbm = (HBITMAP) LoadImage(GetModuleHandle(NULL), szBitmap, IMAGE_BITMAP, x,
                              y, LR_CREATEDIBSECTION);
    if (hbm == NULL)
        hbm = (HBITMAP) LoadImage(NULL, szBitmap, IMAGE_BITMAP, x, y,
                                  LR_LOADFROMFILE | LR_CREATEDIBSECTION);
 
    hdcImage = CreateCompatibleDC(NULL);
    SelectObject(hdcImage, hbm);
 
 pixelvalue = GetPixel(hdcImage, 1, 1);
 
 cout << pixelvalue << endl;
 
 while (1)
 {
 }
 
 return 0;
}

n°41474
Alload
Posté le 20-06-2001 à 19:57:58  profilanswer
 

Allez please :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Convertir GetPixel en RGB

 

Sujets relatifs
[SQL] convertir en champ texte ...[VC++6.0] Comment on fait pour convertir des INT an CHAR *
Convertir une couleur RGB en YUV[VB6 / Access 2000] Comment convertir une appli Access 2000 en VB6
[PERL/C] Convertir du PERL en CJAVASCRIPT comment convertir une chaine de car en un entier ??
Rech. PRG pour convertir du html pour le WAP[pascal] quel est la com pour convertir un fichier Ttexte en tstring ?
[Delphi] Convertir une chaîne de caractère en un entier 
Plus de sujets relatifs à : [C] Convertir GetPixel en RGB


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR