Помощь - Поиск - Пользователи - Календарь
Полная версия: чтение image из файла
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Адель
как можно прочитать image из файла, записанный в него либо по одной картинке либо вот таким вот способом:
Procedure AddToStream ( Source , Dest : TStream );
var
Size: Integer;
begin
Source.position := 0;
Size := Source.Size;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;

procedure TForm1.SaveClick(Sender: TObject);
var
s1, s2: TMemoryStream ;
i: integer;
begin
s1:= TMemoryStream.Create ;
try
s2:= TMemoryStream.Create ;
try
for i:=1 to 300 do
begin
s2.LoadFromFile('C:\Image\'+IntToStr(i)+'.jpg');
AddToStream(s2,s1);
end;
finally
s2.Free ;
end;
s1.SaveToFile('C:\Image.dat')
finally
s1.free ;
end;
end;


Malice
Это надо было в отдельный файлик писать размеры всех картинок (либо позицию в файле), или в тот же файл (длина/картинка, длина/картинка..). Теперь придется искать начало картинки либо по сигнатуре (jpg-и начинаются одинаково), либо разобрать заголовок и оттуда вычислить длину. По сигнатуре проще наверное.
Адель
допустим если записями писать типа:
1.имя
2.размер
3.картинка
то как присвоить Timage картинку с определенным именем...какой фукцией?
если можно кодом пожалуйста, а то затрудняюсь unsure.gif
hardcase
Цитата(Адель @ 2.05.2007 17:31) *
как присвоить Timage картинку с определенным именем...какой фукцией?

Загрузка картинки осуществляется так:

Image1.Picture.LoadFromFile();

Кроме того, я как-то собирал сериализатор объектов в поток (stream), который позволял сохранять достаточно сложные структуры из объектов (включая циклические ссылки друг на друга), насколько помню он был очень компактен (200-300 строк). Если заинтересует - могу выложить код...
Адель
если не сложно smile.gif
hardcase
Цитата(Адель @ 5.05.2007 21:38) *
если не сложно smile.gif

Не поленился и кое какую документацию написал.
Адель
спасибо )
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.