Comment faire pour charger et afficher des images tiff en TImage de contrôle?

Je suis actuellement en train de travailler sur Delphi XE2 version d'essai. Je veux charger et afficher des images TIFF en TImage de contrôle sans l'aide d'un tiers de la composante/bibliothèque.

J'ai essayé le code ci-dessous mais il n'est pas woking pour moi.

Procedure TForm1.Button1Click(Sender: TObject); 
Var 
     OleGraphic               : TOleGraphic; 
     fs                       : TFileStream; 
     Source                   : TImage; 
     BMP                      : TBitmap; 
Begin 
     Try 
          OleGraphic := TOleGraphic.Create; 

          fs := TFileStream.Create('c:\testtiff.dat', fmOpenRead Or fmSharedenyNone); 
          OleGraphic.LoadFromStream(fs); 

          Source := Timage.Create(Nil); 
          Source.Picture.Assign(OleGraphic); 

          BMP := TBitmap.Create; 
          bmp.Width := Source.Picture.Width; 
          bmp.Height := source.Picture.Height; 
          bmp.Canvas.Draw(0, 0, source.Picture.Graphic); 

          image1.Picture.Bitmap := bmp;
     Finally 
          fs.Free; 
          OleGraphic.Free; 
          Source.Free; 
          bmp.Free; 
     End; 
End;

S'il vous plaît conseils.

Si l'extension du fichier est une extension tiff, ce serait un one-liner, image1.Image.LoadFromFile(MyTiffFile). Sinon, cette question peut vous aider how-to-load-an-arbitrary-image-from-a-blob-stream-into-a-timage
Je me demande si ce code est entré à partir de l'échantillon dans swissdelphicenter.ch/fr/showcode.le php?id=2012 (datant de 2004). Je viens de trouver efficacement le même code dans un rarement exploré une partie de la base de code que je travaille sur.

OriginalL'auteur Dev | 2011-10-21