Mettre un pixel d'une certaine couleur en c++ avec Windows - C++ - Programmation
Marsh Posté le 09-07-2002 à 08:25:21
Tu veux faire ça dans quoi, une fenêtre?
Marsh Posté le 09-07-2002 à 08:59:55
Afficher une image pixels par pixels ça va être super long, il vaut mieux utiliser des fonctions spécialisées pour faire la copie de l'image (ou une partie) en une fois.
1° Avec quoi travailles tu ?
Marsh Posté le 09-07-2002 à 11:29:31
Essaye de voir BitBlt... (sous VC++)
Je ne connais pas du tout mais je suis en train de m'y mettre.
Marsh Posté le 09-07-2002 à 12:13:35
si tu veux faire un jeu, alors ya des libs graphiques avec pleins de fonctions, pour que cela soit assez facile.
par ex, www.allegro.cc
Marsh Posté le 09-07-2002 à 12:58:14
DarkOli a écrit a écrit : Afficher une image pixels par pixels ça va être super long, il vaut mieux utiliser des fonctions spécialisées pour faire la copie de l'image (ou une partie) en une fois. 1° Avec quoi travailles tu ? |
Je travaille avec Borland C++
Marsh Posté le 09-07-2002 à 12:59:32
letoII a écrit a écrit : Tu veux faire ça dans quoi, une fenêtre? |
Oui, en fait peu importe je veux juste pouvoir afficher l'image
Marsh Posté le 09-07-2002 à 13:26:26
Il y a
The SetPixel function sets the pixel at the specified coordinates to the specified color.
COLORREF SetPixel(
HDC hdc, // handle of device context
int X, // x-coordinate of pixel
int Y, // y-coordinate of pixel
COLORREF crColor // pixel color
);
C'est une image artificielle (synthétique) ? J'ai eu à faire ça pour surface de profilomètre (niveaux de couleurs arbitraires). C'est un peu long à afficher (ligne par ligne).
J'ai pas encore bien réussi à créer une bitmap DIB en mémoire, et à l'afficher d'un seul coup (comme les softs pro).
Marsh Posté le 11-07-2002 à 03:38:17
carbon_14 a écrit a écrit : Il y a The SetPixel function sets the pixel at the specified coordinates to the specified color. COLORREF SetPixel( HDC hdc, // handle of device context int X, // x-coordinate of pixel int Y, // y-coordinate of pixel COLORREF crColor // pixel color ); C'est une image artificielle (synthétique) ? J'ai eu à faire ça pour surface de profilomètre (niveaux de couleurs arbitraires). C'est un peu long à afficher (ligne par ligne). J'ai pas encore bien réussi à créer une bitmap DIB en mémoire, et à l'afficher d'un seul coup (comme les softs pro). |
Merci, mais je suis débutant en C++ - je ne comprends pas ce que c'est que HDC hdc .
Marsh Posté le 11-07-2002 à 08:20:56
ReplyMarsh Posté le 11-07-2002 à 08:54:21
philbarney a écrit a écrit : Merci, mais je suis débutant en C++ - je ne comprends pas ce que c'est que HDC hdc . |
Si t sous windows, tu trouveras pas autre chose. HDC, c un HANDLE (pointeur de pointeur en API Win32) vers un Device Contexte (contexte d'affichage). Tu peux pas dessiner ailleurs que dans un DC.
Marsh Posté le 17-07-2002 à 18:15:53
Pour donner une couleur à un pixel il te suffit d'utiliser la propriété Pixels[x][y] du canvas de l'objet dans lequel tu veux dessiner.
Par exemple, si tu veux donner au pixel la couleur rouge au pixel situé en (128, 312) sur ton objet TImage::Image1, il te suffit de taper :
Image1->Canvas->Pixels[128][312] = clRed;
ou bien
Image1->Canvas->Pixels[128][312] = RGB(256, 0, 0);
Marsh Posté le 17-07-2002 à 18:17:10
Oups ERRATUM : dans la dernière ligne je voulais plutôt mettre RGB(255, 0, 0)
DSL
Marsh Posté le 09-07-2002 à 04:26:17
Salut à tous. Est-ce que quelqu'un sait comment mettre sous Windows un pixel situé dans une certaine position d'une certaine couleur. J'ai vu certaine fonction mais elles ne marchent que sous DOS. A terme je dois afficher une image (un tableau en fait).
Merci d'avance