Hi Leute,<br><br>
In dieser Function gebe ich ein TBitmap zurück. wenn ich nach dem return ( PaintJpgToTBitmapCanves := aBitMap aBitMap.Free aufrufe gebe ich ein leeres BitMap zurück. Wenn ich es nicht mache klappt es. Aber wie gebe ich das BitMap denn frei, damit sich die Anwendung nicht unnötig aufbläht? Da ich diese Funktion mehrere hundert mal im Programm aufrufe.<br><br>
Gruß Frank
Function PaintJpgToTBitmapCanves(Path: string; hoehe : integer; breite : integer):TBitmap;<br>
var<br>
aJpg : TJPEGImage;<br>
aBitMap : TBitMap;<br>
MaxW : integer;<br>
MaxH : integer;<br>
begin<br>
<br>
if not FileExists(Path) then
Path := EinstPath + 'error.jpg';<br>
<br>
aJpg:=TJPEGImage.Create;<br>
aJpg.PixelFormat := jf24Bit;<br>
aJpg.LoadFromFile(Path);<br>
<br>
aBitMap := TBitMap.Create;<br>
aBitMap.PixelFormat := pf24bit;<br>
aBitMap.HandleType := bmDIB;<br>
aBitMap.Height := hoehe;<br>
aBitMap.Width := breite;<br>
<br>
MaxW := aBitMap.Width;<br>
MaxH := aBitMap.Height;<br>
<br>
MaxW := round(aBitMap.Height * aJpg.Width / aJpg.Height);<br>
if aBitMap.Width < MaxW then<br>
begin<br>
MaxW := aBitMap.Width;<br>
MaxH := round(aBitMap.Width * aJpg.Height / aJpg.Width);<br>
end;<br>
<br>
aBitMap.Canvas.StretchDraw(Rect(0, 0, MaxW, MaxH), aJpg);<br>
aJpg.free;<br>
PaintJpgToTBitmapCanves := aBitMap;<br>
end;<br><br>
In dieser Function gebe ich ein TBitmap zurück. wenn ich nach dem return ( PaintJpgToTBitmapCanves := aBitMap aBitMap.Free aufrufe gebe ich ein leeres BitMap zurück. Wenn ich es nicht mache klappt es. Aber wie gebe ich das BitMap denn frei, damit sich die Anwendung nicht unnötig aufbläht? Da ich diese Funktion mehrere hundert mal im Programm aufrufe.<br><br>
Gruß Frank
Function PaintJpgToTBitmapCanves(Path: string; hoehe : integer; breite : integer):TBitmap;<br>
var<br>
aJpg : TJPEGImage;<br>
aBitMap : TBitMap;<br>
MaxW : integer;<br>
MaxH : integer;<br>
begin<br>
<br>
if not FileExists(Path) then
Path := EinstPath + 'error.jpg';<br>
<br>
aJpg:=TJPEGImage.Create;<br>
aJpg.PixelFormat := jf24Bit;<br>
aJpg.LoadFromFile(Path);<br>
<br>
aBitMap := TBitMap.Create;<br>
aBitMap.PixelFormat := pf24bit;<br>
aBitMap.HandleType := bmDIB;<br>
aBitMap.Height := hoehe;<br>
aBitMap.Width := breite;<br>
<br>
MaxW := aBitMap.Width;<br>
MaxH := aBitMap.Height;<br>
<br>
MaxW := round(aBitMap.Height * aJpg.Width / aJpg.Height);<br>
if aBitMap.Width < MaxW then<br>
begin<br>
MaxW := aBitMap.Width;<br>
MaxH := round(aBitMap.Width * aJpg.Height / aJpg.Width);<br>
end;<br>
<br>
aBitMap.Canvas.StretchDraw(Rect(0, 0, MaxW, MaxH), aJpg);<br>
aJpg.free;<br>
PaintJpgToTBitmapCanves := aBitMap;<br>
end;<br><br>
Comment