voor mijn proggie gebruik ik aparte routines die een plaatje moeten aanpassen.
In het begin gebruikte ik 'functies' die dan een 'result' creerde.
Nou wil ik eigenlijk de functie omzetten naar een procedure en de bitmap
overgeven als een 'var' zodat geen memory leak ontstaat.
nou heeft het programma problemen met de regel: SourceBMP := Temp;
waarom?? en hoe kan ik dit het beste oplossen?
Of is het toch het beste om een functie te gebruiken en die TBitmap die
ie maakt vrij te geven met de aanroepende procedure.
In het begin gebruikte ik 'functies' die dan een 'result' creerde.
Nou wil ik eigenlijk de functie omzetten naar een procedure en de bitmap
overgeven als een 'var' zodat geen memory leak ontstaat.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| procedure MakeCustomPosition(var SourceBMP : TBitmap; SizeX,SizeY : Word; XOffset,YOffset : SmallInt);
var
XStart, YStart : Word;
Temp : TBitmap;
begin
Temp := TBitmap.Create;
Try
Temp.Width := SizeX;
Temp.Height := SizeY;
Temp.PixelFormat := SourceBMP.PixelFormat;
Temp.Canvas.Brush.Color := clBlack;
Temp.Canvas.FillRect(Rect(0, 0, SizeX, SizeY));
(* maak veranderingen aan temp m.b.v SourceBMP*)
Temp.SaveToFile('c:\temp.bmp');
SourceBMP := Temp;
Finally;
Temp.Free;
End;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lullo : TBitmap;
begin
lullo := TBitmap.Create;
lullo.LoadFromFile('c:\25.bmp');
MakeCustomPosition(lullo,1024,768,0,0);
lullo.SaveToFile('c:\edited.bmp');
lullo.Free;
end; |
nou heeft het programma problemen met de regel: SourceBMP := Temp;
waarom?? en hoe kan ik dit het beste oplossen?
Of is het toch het beste om een functie te gebruiken en die TBitmap die
ie maakt vrij te geven met de aanroepende procedure.