bonjour,
est-il possible de gérer des bitmaps en niveau de gris?
le Tcolor peut il convertir une couleur RVB en niveaux de gris?
par avance merci
 
			
			






 
			
			
			
			 
			
				
 bitmap en niveaux de gris
 bitmap en niveaux de gris
				
				
						
						
				bonjour,
est-il possible de gérer des bitmaps en niveau de gris?
le Tcolor peut il convertir une couleur RVB en niveaux de gris?
par avance merci
 
 
				
				
						
						
				Le code suivant effectue une conversion d'un bitmap 24 bits en niveau de gris, en conservant la couleur de transparence:
Sur wikipedia, tu trouves d'autres formules qui donnent un rendu différent
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28RGBTRIPLE *pixels; if (Bitmap->PixelFormat != pf24bit) return; // convertit l'image en gris (voir Wikipedia) */ TColor tcol = Bitmap->TransparentColor; for (int y=0;y<Bitmap->Height;y++) { pixels = (RGBTRIPLE *) Bitmap->ScanLine[y]; for (int x=0;x<Bitmap->Width;x++) { int couleur; couleur = (pixels[x].rgbtBlue)*0x10000 + (pixels[x].rgbtGreen)*0x100+ (pixels[x].rgbtRed); if (couleur != (int) tcol) { double newcouleur = 0.2125*pixels[x].rgbtRed+ 0.7154*pixels[x].rgbtGreen+ 0.0721*pixels[x].rgbtBlue; pixels[x].rgbtBlue = (BYTE) newcouleur; pixels[x].rgbtGreen = (BYTE) newcouleur; pixels[x].rgbtRed = (BYTE) newcouleur; } } }
 
			
			






 
			
			
			
			 
			
				
 
 
				
				
						
						
				merci pour ta réponse
 
 
				
				
						
						
				De rien. Tu peux essayer de faire varier les coefficients (ici 0.2125, 0.7154 et 0.0721) pour adapter le rendu à tes besoins.
Partager