Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Thumbnails erstellen - Seitenverhältnisse beibehalten

  Alt 11. Jan 2006, 18:52
Da ich diese Funktion hier recht nützlich fand und noch etwas verbessert habe, möchte ich sie euch wieder zur Vefügung stellen. Ich habe das destpic-Create aus dem Try genommen weils da nicht hingehörte. Zweitens habe ich die Sache mit der AspectRatio verbessert sodaß die Parameter height und width jetzt Maximalwerte sind, egal ob das Bild nun hoch- oder breitformatig ist.
Delphi-Quellcode:
procedure resizePicture(infile: string; outfile: string; width, height: integer;
                        aspectratio: boolean);
var srcpic, destpic:TBitmap32;
    destrect, srcrect:TRect;
begin
     srcpic:=TBitmap32.Create;
     destpic:=TBitmap32.Create;
     try
        srcpic.LoadFromFile(infile);
        if aspectratio=true then begin
           if srcpic.Height > srcpic.Width then begin
            width:=height * srcpic.width div srcpic.height;
           end else begin
            height:=width * srcpic.Height div srcpic.Width;
           end;
        end;
        try
           destpic.width:=width;
           destpic.height:=height;
           destrect:=Rect(0,0,destpic.width,destpic.height);
           srcrect:=Rect(0,0,srcpic.width,srcpic.height);
           srcpic.StretchFilter:=sfLanczos;
           destpic.Draw(destrect,srcrect,srcpic);
         finally
         srcpic.free;
        end;
     //destpic.SaveToFile(outfile);
     SaveImage(destpic, outfile);
     finally
     destpic.free;
     end;
end;
  Mit Zitat antworten Zitat