Wenn man in einer Anwendung JPG-Bilder z.B. als Hintergrund oder in TImage-Objekten verwendet, hat man daß Problem, daß man anschließend nicht mehr mit den entsprechenden Befehlen auf das Canvas-Objekt zeichnen kann. Um dieses Manko zu umgehen, ist es nötig, die Bilder vorher in ein Bitmap-Objekt umzuwandeln, was diese Prozeduren tun.

Zuerst wird ein temporäres TBitmap-Objekt erzeugt, in welches über die Assign-Methode das JPG-Bild "eingefügt" wird. Anschließend wird das Bitmap dem Ziel (TPicture) assigned. Bitte fragt mich nicht, warum die Delphi nicht von sich aus macht und man diesen Umweg gehen muß.

bilder/download2.gif (1130 Byte) JPEG2Bitmap.pas 1 KB

unit jpeg2bitmap;

interface

Uses Graphics, JPEG;

procedure JpegToBitmap(Bild: String; Dest: TPicture); overload;
procedure JpegToBitmap(Source: TJPEGImage; Dest: TPicture); overload; {wandelt eine JPEG-Bild in ein Bitmap um, damit z.B. mit Canvas.Rectangle auf dem Bild gezeichnet werden kann}

implementation

procedure JpegToBitmap(Bild: String; Dest: TPicture); overload;
var TempBild : TBitmap;
TempJpeg : TJPEGImage;
begin
TempJpeg := TJPEGImage.Create;
TempJpeg.LoadFromFile(Bild);
TempBild := TBitmap.Create;
TempBild.Assign(TempJpeg);
Dest.Assign(TempBild);
TempBild.Free;
TempJpeg.Free;
end;

procedure JpegToBitmap(Source: TJPEGImage; Dest: TPicture); overload;
var TempBild : TBitmap;
begin
TempBild := TBitmap.Create;
TempBild.Assign(Source);
Dest.Assign(TempBild);
TempBild.Free;
end;

end.

zurück