Memory上のJPEGデータを表示するには?

解決


新鮮組  2004-08-16 19:59:03  No: 10445  IP: [192.*.*.*]

通信(USB バルク転送)によって送られた、JPEGファイルデータを
ファイルに落とさずメモリー上からJPEGオブジェクトで表示させた
いのですが、エラーが発生します。

procedure TForm1.Button1Click(Sender: TObject);
var
 JPG : TJPEGImage;
 Strm: TMemoryStream;
begin
 JPG ;= TJPEGImage.Create;
 Strm := TMemoryStream.Create;
 Strm.Write(JpegData,FileSize);
    //ここでテスト用に Strm.SaveToFile('test.jpg');
    //としたところ、ファイルはただしく生成された
 try
   JPG.LoadFromStream(Strm);
   Image1.Picture.Assign(JPG);
 finally
   Strm.Free;
   JPG.Free;
 end;
end;

見よう見真似で、上記のようにして見ましたが、#41のJPEGエラーとなりました。
どのようにすればいいのか、教えていただけないでしょうか?

編集    削除
新鮮組  2004-08-16 20:27:34  No: 10446  IP: [192.*.*.*]

単純にMemoryStreamのポジションを0に戻していなかったためでした。
お騒がせしました。

編集    削除
jok  2004-08-16 20:28:59  No: 10447  IP: [192.*.*.*]

>JPG.LoadFromStream(Strm);

の直前に

Strm.Position := 0;

を入れてください。

編集    削除