1 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
unit Unit1;
{Programme créé par gamegenerators (gamegenerators@voila.fr)}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,n,t,t1,t2,t3,c:integer;
s,R,G,B:string;
begin
{Enlever '//' si vous voulez lire une image}
//Image1.Picture.LoadFromFile('FichierImage.$$$');
for x:=0 to Image1.Picture.Bitmap.Width-1 do
for y:=0 to Image1.Picture.Bitmap.Height-1 do
begin
//Extraction de la couleur
n:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
//***
//Séparation des niveaux des couleurs R-G-B en valeur Hexadécimal
//*
s:=IntToHex(n,2);
B:=copy(s,1,2);
if (B='') then {Evité la valeur Vide dans B}
B:='00';
//*
G:=copy(s,3,2);
if (G='') then {Evité la valeur Vide dans G}
G:='00';
R:=copy(s,5,2);
if (R='') then {Evité la valeur Vide dans R}
R:='00';
//***
//Niveau de gris
t1:=Strtoint('$'+B);
t2:=Strtoint('$'+G);
t3:=Strtoint('$'+R);
//* Calcule du nivau de Gris
t:=t1+t2+t3;
t:=Round(t/3);
c:=Strtoint('$'+IntToHex(t,2)+IntToHex(t,2)+IntToHex(t,2)); {R=G=B}
//Remarque: *************
//Vous pouvez jongler avec les nuances tous simplement
//en choisissant que la couleur que vous voulez garder.
//Pour Une nuance de Bleu
//t:=t2+t3; {Modification R&G}
//t:=Round(t/2);
//Si vous changer le Dénominateur [2..255], vous obtenez
//d'autres dérivées de la couleur
//c:=Strtoint('$'+IntToHex(t1,2)+IntToHex(t,2)+IntToHex(t,2)); {B<>R=G}
//***********************
//*
Image1.Picture.Bitmap.Canvas.Pixels[x,y]:=c; {Pixels avec Nuance de Gris}
end;
end;
end. |
Partager