Einzelnen Beitrag anzeigen

khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

JPEG Skalieren

  Alt 31. Jan 2010, 08:04
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
Karl-Heinz
  Mit Zitat antworten Zitat