Fonction de traitement d'images : niveaux de gris

Contenu du snippet

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

A voir également

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.