I do not see a large increase in stream size that you describe. Perhaps it is caused by not setting the memory stream positions?
Before loading a memory stream its position must be set to 0. Are you doing this?
procedure TForm1.Button1Click(Sender: TObject);
var
img: TImageEnView;
ms, imgStream: TMemoryStream;
begin
if Assigned(cxPageControl1.ActivePage) then
begin
ImageEnView := TImageEnView(cxPageControl1.ActivePage.Controls[0]);
if Assigned(ImageEnView) then
begin
img := TImageEnView.Create(nil);
try
ms := TMemoryStream.Create;
try
imgStream := TMemoryStream.Create;
try
ImageEnView.IO.SaveToStreamJPEG(imgStream);
imgStream.Position := 0; // Important
img.IO.LoadFromStreamJpeg(imgStream);
ShowMessage(Format('Input Image size in bytes: %d', [imgstream.Size]));
img.Proc.ImageResize(ImageEnView.IEBitmap.Width + 10, ImageEnView.IEBitmap.Height +
10, iehCenter,
ievCenter);
img.IO.SaveToStreamJPEG(ms);
ms.Position := 0; // Important
ShowMessage(Format('Saved to memory stream, size=%d', [ms.Size]));
ImageEnView.IO.LoadFromStreamJpeg(ms);
ImageEnView.Update;
UpdateStatusBar;
finally
imgStream.Free;
end;
finally
ms.Free;
end;
finally
img.Free;
end;
end;
end;
end;
William Miller
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html