Zitat von
Neutral General:
Hi,
Delphi-Quellcode:
function JPEGToBMP(JPEG: TGraphic): TBitmap;
begin
if JPEG.ClassType <> TJPEGImage then
exit;
Result := TBitmap.Create;
Result.Assign(JPEG);
end;
// JPEG aus Image1 als Bitmap ins Image2 kopieren.
procedure TForm1.Button1Click(Sender: TObject);
begin
Image2.Picture.Bitmap := JPEGToBMP(Image1.Picture.Graphic);
end;
Gruß
Neutral General
Haben wir dadurch nicht ein Speicherleck?
Denn intern wird beim zuweisen des Bitmaps dieses kopiert. Dadurch wird nirgends die Instanz welche deine Funktion zurück gibt gehalten und wird somit auch nirgends frei gegeben.
Zum eigentlichen Thema. Auf einem JPEG kannst du aus dem gleichen Grund nicht malen warum du auch auf einem zusammengeknüllten Blatt papier nicht malen kannst. Wenn du es auseinander faltest kannst du überall hübsch rum malen und anschließend kannst du es auch wieder zusammen knüllen.