いくつかの画像ファイルを 1 つのファイル (ある種のアーカイブ) に保存しています。そのファイルは次のようになります。
これは、ヘッダーとデータ セグメントの 2 つのセグメントに分かれています。ヘッダー (緑) には、アルバム名、場所、日付/時刻、説明、アルバム内の写真の数などのさまざまな情報が含まれています。データ セグメント (青とオレンジ) は単純な構造で、N x JPEG の写真が含まれています。その「imagedata」セグメントを新しい TMemoryStream オブジェクトに抽出できるので、TImage を使用してそれを表示したいと考えています。
TMemoryStream のSaveAsFileメソッドを使用して一時ファイル名を設定し、そのファイルを TImage からロードして、後で一時ファイルを削除できます。それは機能しますが、一時を使用せずにそのストリームを TImage に送信する方法はあるのでしょうか。ファイル。
もちろん、ハード ディスク上のすべてのファイルを抽出するコードを作成することはできますが、問題は、このようなアーカイブがたくさんあり、ハード ドライブに 20,000 枚以上の写真を保存する代わりに、これらの「アルバム」を読み取るアプリケーションを作成したいことです。 .
要するに、私が望むのは、次の手順を機能させることだけです(一時ファイルを使用せずに)
procedure ShowImageFromStream(data: TStream; img: TImage);
begin
...
end;
前もって感謝します。