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
|
Var
jpg : TJPEGImage;
bmp : tbitmap;
proportion : double;
begin
od.Execute;//ouvre la fenetre pour choisire l'image
IF (od.FileName<>'')then begin
flux:=TMemoryStream.Create;
jpg:= TJPEGImage.Create;
bmp:= tbitmap.Create;
jpg.LoadFromFile(od.FileName);//ouvrire l'image sure le disque dure dans une variable jpg
bmp.Assign(jpg);//transferer l'image de la variable jpg vers la variable bmp pour modification
try
proportion :=jpg.Height/jpg.Width;//calcule la proportion = (largeure % a la oteure) pour ne pas diformer l'image au redimonssionnement
bmp.Width:= 250;//affecter une largeure standard a l'image 250px comunne a toutes les images
bmp.Height := Round(250* proportion);//calcule de la hoteure selon les proportions de l'image oroginale
bmp.Canvas.StretchDraw(bmp.Canvas.ClipRect, jpg);//transferer la jpg dans le bmp redimonssionné (le moule)
jpg.Assign(bmp);//transferer l'image redimonssionnée du bmp vers la jpg par ecrasement de l'ancienne
finally
bmp.Free;//on libére la bmp
end;
jpg.CompressionQuality:=70;//on choisie le niveau de compression (la qualité)
jpg.ProgressiveEncoding:=true;//on choisie le mode de compression (rogressive plus performant)
jpg.Compress;//on effectue la compression
jpg.SaveToStream(flux);//on met l'image dans la variable flux pour l'enregistrer dans la bdd
jpg.SaveToFile('C:\Documents and Settings\Administrateur\Bureau\prette.jpg');//teste d'enregistrement sur disque dure
image1.Picture.Bitmap.Assign(jpg);
end;
query.SQL.Clear;
query.Sql.Add('Insert into tbl(n,img) Values('+edit2.Text+',:mon_image)');
query.Parameters.ParamByName('mon_image').LoadFromStream(flux, ftBlob);
query.ExecSQL;
end; |
Partager