Hallo,
ich würde gerne ein Thumbnail eines JPEG-Bildes
mit hoher Qualität herstellen. Gut, das ist immer relativ, aber der Code, der das jetzt für mich macht ist folgender, und die Qualität kann sich weniger als sehen lassen
Delphi-Quellcode:
procedure createThumbnail(w,h:Integer;src,dest:String);
var width,height,tw,th,tx,ty:Integer;
thumb:TBitmap;
tjpg:TJPEGImage;
path:String;
begin
width := w;
height := h;
path := src;
thumb := TBitmap.Create;
tjpg:=TJpegImage.Create;
try
tjpg.LoadFromFile(path);
finally
tw:=round(tjpg.Width/width);
th:=round(tjpg.Height/height);
if tjpg.Width>tjpg.Height then begin
tx:=0;
ty:=height-(round(width/th) div 2);
end
else begin
tx:=width-(round(height/tw) div 2);
ty:=0;
end;
thumb.PixelFormat := pf24Bit;
thumb.Width:=width;
thumb.Height:=height;
thumb.Canvas.Rectangle(0,0,width,height);
thumb.canvas.StretchDraw(Rect(0,0,100,100),tjpg);
end;
tjpg.Assign(thumb);
tjpg.SaveToFile(dest);
tjpg.Free;
end;
Ich habe auch schon mit der JCLGraphics-Bibliothek rumgespielt, aber nichts hinbekommen... Der hat das BIld immer nicht gespeichert, es kam immer eine 0-byte Datei dabei raus
Hat irgendwer einen Code zum Erstellen von besseren Thumbnails von Jpegs (auch das Thumbnail soll dann ein Jpeg sein), idealerweise mit der JCLGraphics-Bibliothek, denn da kann man verschiedene Algorithmen (sind das Algorithmen?) einstellen, u.a. vergleichbar mit Photoshop
Vielen Dank schonmal!
Johannes