Wat ik wil doen is een jpg van bijv 1600x1200 verkleinen naar 100x100 met de juiste proporties.
dit is de code:
Het werkt wel, maar de bmp die eruit komt is a. niet goed omdat ik een jpg eruit wil hebben (om de simpele reden dat een jpg veel kleiner is dan een bmp) en b. hij verminkt de kleuren in het kleine filetje.
Wat moet ik nu doen om dit voor elkaar te krijgen zonder eerst nog een procedure te maken die een bmp als jpg saved? en die kleuren?
dit is de code:
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
| procedure TForm1.Button2Click(Sender: TObject);
var
bmp : Timage;
img:TJpegImage;
TempBmp:TBitmap;
begin
try
img:= TJpegImage.create;
img.LoadFromFile('D:\achtergrond\test\linux_001.jpg');
TempBmp:=Tbitmap.create;
with TempBmp do
begin
height:=img.Height;
Width:=img.width;
assign(img);
Canvas.DrawFocusRect(rect (0,0,tempbmp.width,tempbmp.Height));
end;
bmp := Timage.create(self);
bmp.width := 100;
bmp.Height := 100;
bmp.Stretch := True;
bmp.Proportional := True;
bmp.Canvas.CopyRect(bmp.Canvas.ClipRect,Tempbmp.Canvas,rect(0,0,tempbmp.width,tempbmp.Height));
bmp.Picture.SaveToFile('D:\achtergrond\test\testlinux_001.bmp');
finally
tempbmp.free;
bmp.free;
img.free;
end;
end; |
Het werkt wel, maar de bmp die eruit komt is a. niet goed omdat ik een jpg eruit wil hebben (om de simpele reden dat een jpg veel kleiner is dan een bmp) en b. hij verminkt de kleuren in het kleine filetje.
Wat moet ik nu doen om dit voor elkaar te krijgen zonder eerst nog een procedure te maken die een bmp als jpg saved? en die kleuren?
"Then there was the man who drowned crossing a stream with an average depth of six inches."