Данные JPEG -поток в TImage

У меня есть несколько изображений -файлов, хранящихся в одном файле (какой-то архив ). Этот файл выглядит так:

enter image description here

Ну, он разделен на два сегмента -заголовок и сегмент данных -. Заголовок (зеленый )содержит различную информацию, такую ​​как название альбома, местоположение, дату/время, описание, количество фотографий в альбоме и т. д. Сегмент данных (синий и оранжевый )имеет простую структуру и содержит N x фото в формате JPEG. Я могу извлечь этот сегмент «imagedata» в новый объект TMemoryStream, и теперь я хочу показать его с помощью TImage.

Я могу использовать метод SaveAsFile TMemoryStream, установить имя временного файла -, загрузить этот файл из TImage, а затем удалить временный файл. Это работает, но мне интересно, есть ли способ отправить этот поток в TImage без использования temp. файлы.

Конечно, я могу написать код для извлечения всех этих файлов на жесткий диск, но проблема в том, что у меня много таких архивов, и я просто хочу написать приложение для чтения этих «альбомов» вместо того, чтобы иметь более 20 000 фотографий на диске. мой жесткий диск.

Короче говоря, все, что я хочу, это заставить следующую процедуру работать (без использования temp. файлы)

procedure ShowImageFromStream(data: TStream; img: TImage);
begin
...
end;

Заранее спасибо.

9
задан Wh1T3h4Ck5 17 April 2012 в 22:39
поделиться