ich hab ein leck in einem tmemorystream:
Delphi-Quellcode:
procedure TForm1.Compress(quality:integer;source:TBitmap32;BTarget:TBitMap32);
var image:TImage;
stream:TStream;
begin
stream:=TMemorystream.Create;
application.MessageBox('memorystream erstellt','');
Originalleft.SaveToStream(stream); //originalleft(TImage32) enthält 100% ein bitmap;
Originalleft.SaveToFile('C:\kompressor_test_orig.bmp'); //hier kommt etwas an !!!!!!!!!
image:=TImage.Create(nil);
image.Picture.Bitmap.LoadFromStream(stream);
image.Picture.Bitmap.SaveToFile('C:\kompressor_test_bitmap.bmp'); //hier nicht -> 0 byte file !!!!!!!!!!!
application.MessageBox('source->image abgeschlossen','');
//ab hier unwichtig....
jpeg.Assign(image.Picture.bitmap);
//application.MessageBox('jpeg beladen hat funktioniert!','2');
JPEG.CompressionQuality:=quality;
//application.MessageBox('qualität zuweisen hat funktioniert!','3');
JPEG.Compress;
//application.MessageBox('komprimieren hat funktioniert!','4');
JPEG.SaveToStream(jpgstream);
//application.MessageBox('jpeg speichern hat funktioniert!','5');
BTarget.LoadFromStream(jpgstream);
OriginalRight.LoadFromstream(jpgstream);
self.ILeftMouseMove(IRight,[],0,0,nil);
Image.Free;
stream.Free;
end;
die mit ausrufezeichen versehenen kommentare beschreiben mein problem ganz gut....
was ist die lösung?
muss ich irgendwie noch mit dem stream was machen? write aufrufen?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1