Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Массив jpg из файла   Найти похожие ветки 

 
Wel   (2006-03-01 10:12) [0]

Уважаемые мастера. Можно ли загрузить массив jpg из файла, с помощью TFileStream и TMemoryStream, зная только что файл это -
4 байта сигнатуры
4 байта - длина маленькой картинки
N байт - маленькaя картинка (обычный JPEG)
4 байта - длина первой большой картинки
N байт - первая большая картинка (тоже обычный JPEG)
далее идёт контрольная сумма (что-то нестандартное, типа суммы по модулю 9) первой половины файла и оставшиеся картинки в ЗАШИФРОВАННОМ виде.


 
umbra ©   (2006-03-01 10:57) [1]

var
 fs: TFileStream;
 ms: TMemoryStream;
 cur_size: Integer;
{..................................................................}
 fs := TFileStream.Create("myfile", fmOpenRead);
 fs.Seek(4, soFromCurrent); //пропускаем сигнатуру
 fs.ReadBuffer(cur_size, 4); //читаем размер
 ms := TMemoryStream.Create;
 ms.CopyFrom(fs, cur_size); //копируем картинку в MemoryStream

Единственное, в чем я не уверен - сдвигает ли CopyFrom позицию в потоке, из которого читает. Если нет, то надо это делать вручную


 
Ega23 ©   (2006-03-01 11:11) [2]


> надо это делать вручную


Уже несколько раз натыкался на то, что лучше Stream.Position ставить вручную.


 
Wel   (2006-03-01 12:35) [3]

Уважаемые профи. не получается открыть файл. Пишет "Stream read error".


 
umbra ©   (2006-03-01 12:39) [4]

нет значит такого файла. или доступа к нему нет.


 
Wel   (2006-03-01 14:51) [5]

И не получится его открыть?


 
umbra ©   (2006-03-01 15:08) [6]

вы лучше покажите Ваш код и скажите, какого типа исключение случается. Без этой конкретной информации дальнейший разговор бесполезен



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-1138628947
= guest =
2006-01-30 16:49
2006.03.19
Как сделать, чтобы при нажатии на combobox - выпадал список табли


2-1141548857
Хрюша
2006-03-05 11:54
2006.03.19
Создать свой модуль - проблема?


4-1135870536
Sergey2005
2005-12-29 18:35
2006.03.19
Отловить завершение виндовс.


2-1140677668
Новочеркасский Волк
2006-02-23 09:54
2006.03.19
Отправка почты. Через NMSMTP.


1-1140058218
Simon
2006-02-16 05:50
2006.03.19
переменные окружения