In der folgenden Routine soll ein JPEG-Bild in einem TImage dargestellt werden. Um sicherzustellen, daß das Bild auch tatsächlich im gewünschten TImage (hier Image1) dargestellt wird, wird zunächst das Bild in das Objekt MyJpeg vom Typ TJPEGImage mit der Klassen-Methode LoadFromFile geladen. Anschließend wird mit der Klassen-Methode DIBNeeded in eine Bitmap erzeugt, die dann an das Objekt MyBitmap vom Typ TBitmap übergeben wird. Im Beispiel wird anschließend das richtige Darstellungsverhältnis für das gegebene Image1 ausgerechnet und dann das Objekt Image1 in diese errechneten Größe angepaßt. Im nächsten Schritt wird dann das Bild aus dem Objekt MyBitmap in die Komponente Image1 kopiert und das Bild via der Methode Stretch an die errechnete Größe angepaßt. uses ..., Jpeg; procedure TForm1.Button1Click(Sender: TObject); var nFaktor: Double; str: String; MyJpeg: TJPEGImage; MyBitmap: TBitmap; begin if OpenPictureDialog.Execute then begin Screen.Cursor := crHourGlass; MyBitmap := TBitmap.Create; MyBitmap.Assign(nil); str := LowerCase(OpenPictureDialog.FileName); Image1.Height := 241; Image1.Width := 241; Image1.Stretch := False; if (LowerCase(ExtractFileExt(str)) = '.jpg') or (LowerCase(ExtractFileExt(str)) = '.jpeg') then begin MyJpeg := TJpegImage.Create; MyJpeg.LoadFromFile(str); MyJpeg.DIBNeeded; MyBitmap.Assign(MyJpeg); MyJpeg.Free; end else begin MessageDlg(Format('FATALER FEHLER!%sDieses Bildformat ist unbekannt!',[#13#10]),mtError,[mbAbort],0); MyBitmap.Free; Exit; end; if MyBitmap.Width > MyBitmap.Height then begin nFaktor := 241 / MyBitmap.Width; Image1.Height := Trunc(MyBitmap.Height * nFaktor) + 1; end else begin nFaktor := 241 / MyBitmap.Height; Image1.Width := Trunc(MyBitmap.Width * nFaktor) + 1; end; Image1.Picture.Bitmap.Assign(MyBitmap); Image1.Stretch := True; MyBitmap.Free; Screen.Cursor := crDefault; end; end; |