2015-11-08 10 views
5

Delphi XE4でTImageにpng画像を読み込もうとしています。 PNGはストリームから開始されます。png画像をTImageに読み込む方法

Stream := TMemoryStream.Create; 
    try 
    Stream.LoadFromFile('c:\file.png'); 
    Stream.Position := 0; 
    Image1.Picture.Graphic.LoadFromStream(Stream); 
    finally 
    Stream.Free; 
    end; 

私はこのコードを実行するときに私がAVを取得します。誰かが私が間違っていることを教えてもらえますか?

ありがとうございました。

+1

は、なぜあなたは、いくつかのデバッグをしませんか?私たちはAVがどこにあるか知らない。あなたはそれを再現できますか?この特定の問題よりも、基本的なデバッグのスキルを習得することにもっと心配する必要があります。 –

答えて

14

グラフィックはPictureに読み込まれるまで、TImage.Picture.Graphicプロパティはnilです。

あなたのように実現することができるために求めている何は、次のとおりです。

uses pngimage; 

    Stream := TMemoryStream.Create; 
    try 
    // obtain png image, load from file or other.. 
    .... 
    Image := TPngImage.Create; 
    try 
     Stream.Position := 0; 
     Image.LoadFromStream(Stream); 
     Image1.Picture.Graphic := Image; 
    finally 
     Image.Free; 
    end; 
    finally 
    Stream.Free; 
    end; 
+0

私はPNGImageファイル/ dcuが存在しないところでdelphi 5を使用しています。私はどのように私はメモリストリームと同じことをすることができます教えてください。 –

+0

D5にこの[PngComponents](https://code.google.com/archive/p/cubicexplorer/downloads)をインストールできるかどうかを確認してください。正しくリコールすれば、TPNGImageではなくTPNGObjectがパッケージにあります。 – RaelB

関連する問題