les composantes d'un pixel en niveaux de gris ont la même valeur.
R=G=B=0 --> Noir
R=G=B=255 --> Blanc
R=G=B=127 --> Gris Moyen
Donc, On fait une moyenne des composantes R,G,B de chaque pixel, puis
on affecte cette moyenne à chaque composante.
R=G=B=(R+G+B) DIV 3
Source / Exemple :
PROCEDURE ToGrayScale (VAR BMP : TBitmap; CONST Rect : TRect);
VAR
TabScanline : ARRAY OF PRGBArray;
I, J : integer;
N : integer;
BEGIN
BMP.pixelFormat := pf24bit;
setLength(TabScanline, BMP.Height);
FOR N := 0 TO BMP.Height - 1 DO
TabScanline[N] := BMP.Scanline[N];
FOR I := Rect.Left TO Rect.Right DO
FOR J := Rect.Top TO Rect.Bottom DO
BEGIN
WITH TabScanline[J,I] DO
BEGIN
N := (RGBTRed + RGBTGreen + RGBTBlue) DIV 3;
RGBTRed := N;
RGBTGreen := N;
RGBTBlue := N;
END;
END;
TabScanline := nil;
END;
Conclusion :
w413x@free.fr
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.