У меня есть несколько изображений -файлов, хранящихся в одном файле (какой-то архив ). Этот файл выглядит так:
Ну, он разделен на два сегмента -заголовок и сегмент данных -. Заголовок (зеленый )содержит различную информацию, такую как название альбома, местоположение, дату/время, описание, количество фотографий в альбоме и т. д. Сегмент данных (синий и оранжевый )имеет простую структуру и содержит N x фото в формате JPEG. Я могу извлечь этот сегмент «imagedata» в новый объект TMemoryStream, и теперь я хочу показать его с помощью TImage.
Я могу использовать метод SaveAsFile TMemoryStream, установить имя временного файла -, загрузить этот файл из TImage, а затем удалить временный файл. Это работает, но мне интересно, есть ли способ отправить этот поток в TImage без использования temp. файлы.
Конечно, я могу написать код для извлечения всех этих файлов на жесткий диск, но проблема в том, что у меня много таких архивов, и я просто хочу написать приложение для чтения этих «альбомов» вместо того, чтобы иметь более 20 000 фотографий на диске. мой жесткий диск.
Короче говоря, все, что я хочу, это заставить следующую процедуру работать (без использования temp. файлы)
procedure ShowImageFromStream(data: TStream; img: TImage);
begin
...
end;
Заранее спасибо.