Salut (et bienvenue), seanblue
Pour redimentionner une image, il faut utiliser le methode StrechDraw du TCanvas.
Petit exemple :
Un Paintbox nommé PB.
Un Bouton (Button1)Un Timer (Timer1) : Interval 5, Enabled False
Jpeg dans les Uses.
Et ceci : pour les evenements OnClick du bouton :
procedure TForm1.Button1Click(Sender: TObject);
begin
Img:=TJpegImage.Create;
Img.LoadFromFile('E:\\Test.jpg');
CRect:=PB.Canvas.ClipRect;
Pos:=-200;
Timer1.Enabled:=True;
end;
OnTimer du Timer1 :
procedure TForm1.Timer1Timer(Sender: TObject);
var
CR : TRect;
begin
CR:=PB.Canvas.ClipRect;
if Pos < 0 then
Inc(Pos)
else
Timer1.Enabled:=False;
CRect:=Rect(CR.Left-Pos,CR.Top-Pos,CR.Right+Pos,CR.Bottom+Pos);
PB.Canvas.StretchDraw(CRect,Img);
end;
Et dans le OnDestroy de la form :
procedure TForm1.Timer1Timer(Sender: TObject);
var
CR : TRect;
begin
CR:=PB.Canvas.ClipRect;
if Pos < 0 then
Inc(Pos)
else
Timer1.Enabled:=False;
CRect:=Rect(CR.Left-Pos,CR.Top-Pos,CR.Right+Pos,CR.Bottom+Pos);
PB.Canvas.StretchDraw(CRect,Img);
end;
Sans oublier de declarer quelques variables globales :
var
Form1: TForm1;
Img : TJpegImage;
CRect : TRect;
Pos : Integer;
Et voila !!!
Il suffit de changer la valeur de depart de "Pos" pour fare varier la taille de départ de l'image. La propriete Interval du Timer sert à varier la frequence d'agrandissement.
Bien sûr, changer le nom de fichier par une image Jpeg valide ou adapter avec un TBitmap ou TPicture pour les autres types de fichiers.
Le résultat est legerement désagreable à l'oeil nu, mais en appliquant une methode de filtrage de Delphiprog que je ne retrouve plus, cela doit rendre mieux.
@ ++ Florent
Si tu ne te plantes pas ......
tu ne poussera jamais