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 - Scanline

Présentation

La fonction scanline permet d'accéder à chaque ligne de pixels. Contrairement à la fonction pixels, scanline travaille par ligne de pixels et non pixels par pixels. L'avantage de ce procéder est le gain de temps
.
Cette fonction s'utilise avec un Bitmap.

Tout d'abord il faut inclure dans votre source ce code qui nous permettra de réaliser l'effef grisatre :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TRGBArray = ARRAY[0..32767] of TRGBTriple;
pRGBArray = ^TRGBArray;


Effet grisâtre sur une image

Nous avons besoin d'un composant TImage et TButton.
Puis, insérez une image en couleur dans le composant. Nous utiliserons un bitmap pour travailler avec la fonction scanline.

procedure TForm1.Button1Click(Sender: TObject);
var i, j, Col : Integer;
pb : pRGBArray;
bmp:TBitmap;
begin
Screen.Cursor := crHourGlass;
bmp:=TBitmap.Create;
bmp.Assign(Image1.Picture.Bitmap);
for j:=0 to bmp.Height-1 do
begin
pb := bmp.ScanLine[j];
for i:=0 to bmp.Width-1 do
begin

Col := Round(pb[i].rgbtRed * 0.3 + pb[i].rgbtGreen * 0.59 + pb[i].rgbtBlue * 0.11);
pb[i].rgbtRed := Col;
pb[i].rgbtGreen := Col;
pb[i].rgbtBlue := Col;
end;
end;
Image1.Picture.Assign(bmp);
bmp.Free;
Screen.Cursor := crDefault;
end;


Effet grisatre avec scanline    [ 02-10-2001 ]
 Effet grisâtre utilisant la fonction scanline dans une image.
Télécharger :  [6 Ko] [Télécharger scanline.zip]

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

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