Witam, napisałem prosty programik do wrzucania fotek na serwer ale mam problem z wczytywaniem do niego zdjęć, a mianowicie zdjęcia wybierane są przez OpenPictureDialog następnie są pomniejszane i dynamicznie są tworzone obiekty TImage. Wszystko działa fajnie tylko jak się wczyta kilkanaście fotek to trzeba chwile czekać aż się pojawią :( Czy można jakoś przyśpieszyć działanie tego programu ? Poniżej zamieszczam funkcję do zmniejszania rozmiaru (znalazłem gdzieś w necie) - program był pisany kilka lat temu i teraz postanowiłem go trochę ulepszyć
function thumb(plik : string; w : integer; h : integer) : TJPEGImage;
var
JPG : TJPEGImage;
ratio : double;
Bmp, Bmp2 : TBitmap;
begin
JPG := TJPEGImage.Create;
JPG.LoadFromFile(plik);
if JPG.Width>JPG.Height then // jesli orientacja pozioma
begin
ratio := JPG.Width/w;
Bmp := TBitmap.Create;
Bmp.Width := JPG.Width;
Bmp.Height := JPG.Height;
Bmp.Canvas.StretchDraw(Rect(0, 0, Bmp.Width - 1, Bmp.Height - 1),JPG);
ResizeBilinear(Bmp, Bmp2, Round(JPG.Width / ratio), Round(JPG.Height / ratio), JPG.Width, JPG.Height);
end;
if JPG.Width<JPG.Height then // jesli orientacja pionowa
begin
ratio := JPG.Height/h;
Bmp := TBitmap.Create;
Bmp.Width := JPG.Width;
Bmp.Height := JPG.Height;
Bmp.Canvas.StretchDraw(Rect(0, 0, Bmp.Width - 1, Bmp.Height - 1),JPG);
ResizeBilinear(Bmp, Bmp2, Round(JPG.Width / ratio), Round(JPG.Height / ratio), JPG.Width, JPG.Height);
end;
JPG.Assign(Bmp2);
JPG.CompressionQuality := 75;
JPG.Compress;
Result := JPG;
end;