Ich hab mal in meinem Archiv gekramt. Ich habe damals folgende Units benutzt (die ich leider nicht mehr finde)
jpegtool, dEXIF, dIPTC
Dazu hab ich mir folgende Prozedur geschrieben, die andere Prozeduren aus diesen Units aufruft:
Delphi-Quellcode:
function GetAspectedJpegThumb(FileName: String; ThumbWidth, ThumbHeight: Integer; Size: TPoint; FillColor: TColor = clWhite): TPicture;
Var
Bmp: TBitmap;
Pic: TPicture;
Offset: Integer;
begin
Bmp:=TBitmap.Create;
Pic:=TPicture.Create;
Bmp.Width:=ThumbWidth;
Bmp.Height:=ThumbHeight;
Bmp.PixelFormat:=pf32bit;
{ Auch wenn kein Thumbnail vorhanden ist muss ein Bild ausgegeben werden }
Bmp.Canvas.Brush.Color:=FillColor;
Bmp.Canvas.FillRect(Rect(0,0,Bmp.Width,Bmp.Height));
Pic.Assign(Bmp);
If HasJpegThumb(FileName) = False then raise EInvalidGraphic.Create('No Thumbnail found!');
ExtractJpegThumb(FileName,Pic);
Offset:=Round((Bmp.Height-MulDiv(Bmp.Width,Size.Y,Size.X)) / 2);
Bmp.Canvas.StretchDraw(Rect(0,Offset,Bmp.Width,Bmp.Height-Offset),Pic.Bitmap);
Pic.Assign(Bmp);
Result:=Pic;
end;
Damit hab ich einen Thumbnail bekommen, den meine DigiCam (Canon Powershot A75) in das JPEG in den EXIF-Bereich automatisch reingepackt hat