سلام دوستان
در برنامه ای با استفاده از FileStream فایلی را باز میکنم و در دیتابیس ذخیره میکنم.
بعضی از فایلهای jpg بزرگ هستند و من میخواهم سایز کوچکتر ذخیره کنم:
var
sFile:TFileStream;
Ret:TThrMessageParam;
JPG:TJPEGImage;
BMP:TBitmap;
Scale:Real;
begin
sFile:=TFileStream.Create(FileName,fmOpenRead);
if IsThumb then begin
JPG:=TJPEGImage.Create;
JPG.LoadFromStream(sFile);
BMP:=TBitmap.Create;
if (JPG.Width>ThumbMaxWidth)or(JPG.Height>ThumbMaxHei ght) then
if (JPG.Width/ThumbMaxWidth)>(JPG.Height/ThumbMaxHeight) then
Scale:=JPG.Width/ThumbMaxWidth
else
Scale:=JPG.Height/ThumbMaxHeight
else
Scale:=1;
BMP.Width:=Round(JPG.Width/Scale);
BMP.Height:=Round(JPG.Height/Scale);
Bmp.Canvas.StretchDraw(Rect(0,0,BMP.Width,BMP.Heig ht), JPG);
JPG.Assign(BMP);
JPG.SaveToFile('d:\aa.jpg');
JPG.SaveToStream(sFile);
BMP.Free;
JPG.Free;
end;

در این خط که به صورت آزمایشی نوشته ام، فایل کوچک شده به درستی ذخیره میشود
    JPG.SaveToFile('d:\aa.jpg');

اما در خط بعد:
    JPG.SaveToStream(sFile);

انتظار دارم محتویات فایل کوچک شده در sFile ذخیره شود که در ادامه برنامه در دیتابیس ذخیره شود. اما فایل اصلی در دیتابیس ذخیره میشود!!
لطفا راهنمایی کنید مشکل از کجاست؟