Hallo zusammen,
zum Skalieren von JPEGs habe ich folgende Delphi procedure gefunden.
Delphi-Quellcode:
procedure ResizeJPEG(j:TJPEGImage; AWidth,AHeight:Integer);
var Bmp1,Bmp2: TBitmap;
Faktor: double;
begin
Bmp1:=TBitmap.Create;
try
Bmp1.Assign(j);
Bmp2:=TBitmap.Create;
try
with Bmp2 do begin
if (j.Height>=j.Width) then
begin
Faktor := j.Width/j.Height;
Height := AHeight;
Width := Trunc(AHeight*Faktor)
end; // if (j.Height>=j.Width) then
if (j.Height<j.Width) then
begin
Faktor := j.Height/j.Width;
Height := Trunc(AWidth*Faktor);
Width := AWidth
end; // if (j.Height>=j.Width) then
Canvas.StretchDraw(Rect(0,0,Bmp2.Width,Bmp2.Height),Bmp1);
end;
j.Assign(Bmp2);
finally
Bmp2.Free;
end;
finally
Bmp1.Free;
end;
end;
leider gibts in Lazarus die
unit JPEG nicht, und die lazjpeg hat nur einen deprecated Eintrag
type
TJPGImage = TJPEGImage; // deprecated
Welche Möglichkeit gibts unter Lazarus?
Danke Gruss KH