Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - Graphique - Pixels

Présentation

Voici un exemple travaillant avec les pixels.
On affecte pixels pour modifier la couleur d'un pixel de la surface de dessin. Pixels est utilisé pour des effets précis sur l'image.

Travailler en pixel est relativement long selon la taille de l'image. Par contre, l'avantage par rapport à la méthode de scanline est de garder le nombre de bits de l'image.


Effet grisâtre

procedure TButton1Click(Sender: TObject);
var Rouge,vert,bleu,moyenne: Byte;
px,py: Word;
couleur: Longint;
begin
Screen.Cursor := crHourglass;
try
for Py:=0 to (Image1.Height-1) do
for Px:=0 to (Image1.Width-1) do
begin

Couleur:=ColorToRGB(Image1.Canvas.Pixels[px,py]);
Rouge:=0;
Vert:=0;
Bleu:=0;
Bleu:=Couleur div 65536;
Vert:=(Couleur-(Bleu*65536)) div 256;
Rouge:=(Couleur-(Bleu*65536))-(256*Vert);
moyenne:=(Rouge+Vert+Bleu) div 3;
Image1.Canvas.Pixels[px,py]:=RGB(moyenne,moyenne,moyenne);
end
;
finally
Screen.Cursor := crDefault;
end;
end;

Effet grisatre    [ 02-10-2001 ]
 Effet grisatre travaillant avec les pixels.
Télécharger :  [6 Ko] [Télécharger pixels.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/


Effet miroir horizontal

procedure TButton1Click(Sender: TObject);
var px,py:integer;
couleur1,couleur2:longint;
begin
Screen.Cursor := crHourglass;
try
For px:=0 to (Image1.width-1) do
For py:=0 to ((Image1.height-1) div 2) do
begin
Couleur1:=Image1.Canvas.Pixels[px,py]; Couleur2:=Image1.Canvas.Pixels[px,(Image1.height-1)-py]; Image1.Canvas.Pixels[px,py]:=couleur2;
Image1.Canvas.Pixels[px,(Image1.height-1)-py]:=couleur1;
end;
finally
Screen.Cursor := crDefault;
end;
end;

Effet miroir horizontal    [ 02-10-2001 ]
 Effet miroir horizontal travaillant avec les pixels.
Télécharger :  [6 Ko] [Télécharger mirhoriz.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/


Effet miroir vertical

procedure TButton1Click(Sender: TObject);
var px,py:integer;
couleur1,couleur2:longint;
begin
Screen.Cursor := crHourglass;
try
For py:=0 to (Image1.height-1) do
For px:=0 to ((Image1.width-1) div 2) do
begin
Couleur1:=Image1.Canvas.Pixels[px,py]; Couleur2:=Image1.Canvas.Pixels[(Image1.width-1)-px,py]; Image1.Canvas.Pixels[px,py]:=couleur2;
Image1.Canvas.Pixels[(Image1.width-1)-px,py]:=couleur1;
end;
finally
Screen.Cursor := crDefault;
end;
end;

Effet miroir vertical    [ 02-10-2001 ]
 Effet miroir vertical travaillant avec les pixels.
Télécharger :  [6 Ko] [Télécharger mirvert.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/


Effet couleur bleu

procedure TButton1Click(Sender: TObject);
var Rouge,vert,bleu,moyenne:byte;
px,py:word;
couleur:longint;
begin
Screen.Cursor := crHourglass;
try
For Py:=0 to (Image1.Height-1) do
For Px:=0 to (Image1.Width-1) do
begin
Couleur:=ColorToRGB(Image1.Canvas.Pixels[px,py]);
Rouge:=0;
Vert:=0;
Bleu:=0;
Bleu:=Couleur div 65536;
Vert:=(Couleur-(Bleu*65536)) div 256;
Rouge:=(Couleur-(Bleu*65536))-(256*Vert);
moyenne:=(Rouge+Vert+Bleu) div 3; Image1.Canvas.Pixels[px,py]:=RGB(0,0,moyenne);
end;
finally
Screen.Cursor := crDefault;
end;
end;

Effet couleur bleu    [ 02-10-2001 ]
 Effet couleur bleu travaillant avec les pixels.
Télécharger :  [6 Ko] [Télécharger pixelbleu.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/


Changer une couleur avec une autre

procedure TButton1Click(Sender: TObject);
var px, py: Integer;
begin
Screen.Cursor := crHourglass;
For py := 0 to Image1.Picture.Bitmap.Height-1 do
begin
For px := 0 to Image1.Picture.Bitmap.Width-1 do
begin
if Image1.Picture.Bitmap.Canvas.Pixels[px,py] = clred then
Image1.Picture.Bitmap.Canvas.Pixels[px,py] := clblue;
end
;
end;
Screen.Cursor := crDefault;
end;

Changer une couleur    [ 02-10-2001 ]
 Changer une couleur avec une autre en travaillent avec les pixels.
Télécharger :  [7 Ko] [Télécharger changecoul.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/


La fonction PixelFormat

On utilise la fonction PixelFormat dans un bitmap pour changer le nombre de bit ou pour connaitre le nombre de bit.

procedure TButton1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.PixelFormat:=pf8bit;//Image en 8 bit
end;

PixelFormat    [ 02-10-2001 ]
 Programme utilisant la fonction pixelformat dans un bitmap.
Télécharger :  [6 Ko] [Télécharger pixelformat.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/

Tous droits réservés - Contacts
Haut de la page