掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
連続したJPEGストリームデータの読み込みで1ファイルづつ読み込むには? (ID:11898)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
画像が三つの場合の例をあげておきます。 uses Jpeg; // ファイルに書き込む procedure TForm1.Button1Click(Sender: TObject); var i,con,size:integer; jpegfile: Array[0..2] of string; ms:TMemoryStream; fs:TFileStream; begin jpegfile[0] := 'C:\JPG\flower.jpg'; jpegfile[1] := 'C:\JPG\Rose.jpg'; jpegfile[2] := 'C:\JPG\suiren.jpg'; fs := TFileStream.Create('c:\Test.dat',fmCreate or fmShareExclusive); ms := TMemoryStream.Create; try con := 3; fs.Write(con,SizeOf(integer)); for i := 0 to con-1 do begin ms.Clear; ms.LoadFromFile(jpegfile[i]); size := ms.Size; fs.Write(size,SizeOf(integer)); fs.Write(ms.Memory^,size); end; finally ms.Free; fs.Free; end; end; // ファイルから読み出して Image1 〜 Image3 に表示する procedure TForm1.Button2Click(Sender: TObject); var i,con,size:integer; ms:TMemoryStream; fs:TFileStream; jpg:TJpegImage; compo:TComponent; begin fs := TFileStream.Create('c:\Test.dat',fmOpenRead or fmShareExclusive); ms := TMemoryStream.Create; jpg := TJpegImage.Create; try fs.Position := 0; fs.Read(con,SizeOf(integer)); for i := 0 to con-1 do begin ms.Clear; fs.Read(size,SizeOf(integer)); ms.SetSize(size); fs.Read(ms.Memory^,size); jpg.LoadFromStream(ms); compo := FindComponent('Image'+IntToStr(i+1)); if compo is TImage then TImage(compo).Picture.Bitmap.Assign(jpg); end; finally fs.Free; ms.Free; jpg.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.