Einzelnen Beitrag anzeigen

DelphiMuffin

Registriert seit: 26. Dez 2004
3 Beiträge
 
#4

Re: Thumbnails erstellen - Seitenverhältnisse beibehalten

  Alt 28. Dez 2004, 11:20
Mich hat die schlechte Qualität gestört und daher hab ich die Routine nocheinmal komplett neu mit der Graphics32 Library geschrieben. Der StretchFilter:=sfLanczos zeichnet das ganze jetzt schön weich Das ganze funktioniert jetzt nicht nur mit jpegs, daher die SaveImage Prozedur, die den Bitmap32 nochmal in ein Jpeg umwandelt. Ich hab ziemlich lange für gebraucht, daher tut euch das nicht an und benutzt meinen Schnipsel Ein Erwähnung wäre natürlich ganz nett

Delphi-Quellcode:
[..] uses Classes, Types, Graphics, Jpeg, GR32, GR32_Image; [..]

procedure SaveImage(inBmp: TBitmap32; filename: string);
var jpeg: TJPEGImage;
    bmp: TBitmap;
begin
     jpeg := TJPEGImage.Create;
     bmp := TBitmap.Create;
     try
        bmp.Assign(inBmp);
        jpeg.CompressionQuality := 100;
        jpeg.Assign(bmp);
        jpeg.SaveToFile(filename);
     finally
            jpeg.Free;
            bmp.Free;
     end;
end;


procedure resizePicture(infile: string; outfile: string; width, height: integer;
                        aspectratio: boolean);
var srcpic, destpic:TBitmap32;
    destrect, srcrect:TRect;
begin
     srcpic:=TBitmap32.Create;
     try
        srcpic.LoadFromFile(infile);
        destpic:=TBitmap32.Create;
        if aspectratio=true then height:=width * srcpic.Height div srcpic.Width;
        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