12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
1

Чтение части файла из файла и показ его в Image

05.06.2016, 21:54. Показов 1506. Ответов 4
Метки нет (Все метки)

Здравствуйте! Есть большой файл состоящий из записанных один за одним графических файлов. Данные записи (длины файлов итд) хранятся отдельно, то есть файл вполне читабельный. Я могу легко прочитать нужный мне графический фрагмент из него и записать его на диск. Но вот вопрос, у меня ни как не получается сделать так, что бы можно было отображать читаемую в данный момент часть файла в Image без записи ее на диск, тобишь не сделать файл а потом его загрузить в имидж, а загрузить в имидж LoadFromStream.
Помогите пожалуйста разобраться, ничего нее выходит(

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure LoadImageFromBase(InFile, : string; ReadPos:uint64; RFileLen:Uint64);
var
  InFile: TMemoryStream;
  pic :TPicture;
begin
pic := TPicture.Create;
 
InFile  := TMemoryStream.Create;
InFile.Seek(ReadPos, soFromBeginning);
 
 
    InFile.Read(Buff, RFileLen);
    Application.ProcessMessages();
 
    RewersByte(count);
    Application.ProcessMessages();
 
    pic.Graphic.LoadFromStream(InFile);
    Form1.Image1.Picture.Assign(pic);
 
   InFile.Free;
end;
Добавлено через 22 минуты
забыл написать
Delphi
1
InFile.LoadFromFile(aInFile);
между
Delphi
1
2
3
4
 
InFile  := TMemoryStream.Create;
и
InFile.Seek(ReadPos, soFromBeginning);
Но все равно не работает))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2016, 21:54
Ответы с готовыми решениями:

Image чтение директории файла из*.txt
есть текстовый файл в нём записана директория картинки через диалог . Нужно вывести картинку, при...

Чтение части строки из файла
Приветствую. Прошу помощи в реализации кода: имеется текстовый файл, в котором весь текст написан в...

Чтение части файла в TMemoryStream
Задача. Есть файл, открыт как файловый поток, необходимо считать часть этого файла в поток (в...

Чтение из файла строк. Сравнение части каждой строки как даты
Здравствуйте, Пишу лабы по ТРПП, ну и соответственно небольшую программку-ОРГАНАЙЗЕР. Подскажите...

4
3364 / 2023 / 646
Регистрация: 29.05.2013
Сообщений: 8,725
05.06.2016, 22:53 2
Я делал подобное так, только для вывода картинки я использовал компонент из ImageEn:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Var
  JpgLib: TFileStream;
  JpgData: Pointer;
  FileName: String;
begin
 
      JpgLib := TFileStream.Create(FileName,fmOpenRead);       
      JpgLib.Seek(frmData.Query.FieldValues['Нач.Данных'],soFromBeginning);
      GetMem(JpgData,frmData.Query.FieldByName('Размер').AsInteger);
      JpgLib.Read(JpgData^,frmData.Query.FieldValues['Размер']);
      ImageEn1.IO.LoadFromBuffer(JpgData,frmData.Query.FieldValues['Размер'],ioJPEG);
      FreeMem(JpgData);
      JpgLib.Free;
      end;
 
end;
1
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
05.06.2016, 22:59  [ТС] 3
Спасибо конечно за наглядность, а стандартными методами это можно как то сделать не прибегая к использованию внешних компонентов?
0
5494 / 4289 / 1379
Регистрация: 14.04.2014
Сообщений: 19,273
Записей в блоге: 19
06.06.2016, 06:06 4
1. loadFromStream читает с текущей позиции стрима, сбросьте ее на 0
2. думаю, что по умолчанию Picture это совсем непонятный зверь
Picture.Graphic содержит либо TBitmap либо TPNGImage либо TJPegImage
поэтому грузите в объект нужного формата, а потом его уже в Picture.Graphic
1
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
06.06.2016, 08:58  [ТС] 5
Спасибо, сейчас попробую)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 08:58
Помогаю со студенческими работами здесь

Ввести адрес файла и разобрать его на части
Помогите с решением. УСЛОВИЕ: ввести адрес файла и разобрать его на части ,разделённые знаком...

Разделение файла и его чтение
Есть файл. В нём есть заголовки TXP. Нужно, чтобы программа отделяла от файла часть после каждого...

Чтение файла, и его выполнение
Всем доброго времени суток. Как прочесть файл и выполнить код, записанный в этом файле? Дан...

Ввести адрес файла и разобрать его на части(строчки с++)
Помогите,пожалуйста,решить следующую задачу. Ввести адресс файла и разобрать его на части...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru