Текущий архив: 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.45 MB
Время: 0.011 c