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ß.
![]() |
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.