Mam kilka plików graficznych zapisanych w jednym pliku (jakiś rodzaj archiwum). Że plik wygląda tak:Strumień danych JPEG do TImage
dobrze, to rozdziela się na dwa segmenty - Nagłówek i dane segmentu. Nagłówek (zielony) zawiera różne informacje, takie jak nazwa albumu, lokalizacja, data/czas, opis, liczba zdjęć w albumie itp. Segment danych (niebieski & pomarańczowy) ma prostą strukturę i zawiera N x zdjęcie JPEG. Mogę wyodrębnić ten segment "Imagedata" do nowego obiektu TMemoryStream, a teraz chcę go pokazać za pomocą TImage.
Mogę użyć SaveAsFile metody TMemoryStream, ustawić tymczasową nazwę pliku, załadować ten plik z TImage, a później usunąć tymczasowy plik. To działa, ale zastanawiam się, czy istnieje sposób, aby wysłać ten strumień do TImage w/out przy użyciu temp. akta.
Oczywiście, mogę napisać kod, aby wyodrębnić wszystkie te pliki na dysku twardym, ale problem polega na tym, że mam wiele takich archiwów i po prostu chcę napisać aplikację, aby przeczytać te "albumy" zamiast mieć ponad 20 000 zdjęć na moim twardym dysku.
W skrócie, wszystko czego chcę to zrobić po procedura działa (w/przy użyciu temp. Pliki)
procedure ShowImageFromStream(data: TStream; img: TImage);
begin
...
end;
Dzięki z góry.
+1 nieznacznie diff nazwy var, ale tak samo jak Pisałem, muszę nauczyć się pisać szybciej. – Dampsquid
MY BÓG, nawet ja użyłem TJPEGImage przed, całkowicie przegapiłem metodę LoadFromStream !? Wielkie dzięki, to wszystko. – Wh1T3h4Ck5
Cieszę się, że pomogłem ;-) – TLama