![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
несколько jpg в файл [D5, Win95/98]
Antonio © (2002-04-13 13:39:00)Подскажите пожалуста, как запихнуть несколько картинок jpg в один файл. Что-то типа: DXImageList1.Items.SaveToFile"bla_bla.dat")
MBo (2002-04-13 14:33:00) [1]) Сохранение несколько объектов, обладающих методом SaveToStream, в один поток
uses ... jpeg;
procedure TForm1.SaveClick(Sender: TObject);
var
j1,j2:TJpegImage;
fs: TFileStream;
ms: TMemoryStream;
size: Integer;
begin
j1:= TJpegImage.Create;
j2:= TJpegImage.Create;
j1.LoadFromFile("e:\5.jpg");
j2.LoadFromFile("e:\4.jpg");
ms:= TMemoryStream.Create;
fs:= TFileStream.Create("e:\jpgs.dat",fmCreate);
j1.SaveToStream(ms);
ms.Position := 0;
size := ms.Size;
fs.WriteBuffer( size, Sizeof(size));
fs.CopyFrom(ms, size );
ms.Clear;
j2.SaveToStream(ms);
ms.position := 0;
size := ms.Size;
fs.WriteBuffer( size, Sizeof(size));
fs.CopyFrom(ms, size );
ms.Free;
fs.Free;
j1.Free;
j2.Free;
end;
procedure TForm1.LoadClick(Sender: TObject);
var
j1,j2:TJpegImage;
fs: TFileStream;
ms: TMemoryStream;
size: Integer;
begin
j1:= TJpegImage.Create;
j2:= TJpegImage.Create;
ms:= TMemoryStream.Create;
fs:= TFileStream.Create("e:\jpgs.dat",fmOpenRead);
fs.ReadBuffer( size, sizeof(integer));
ms.CopyFrom(fs, size );
ms.Position := 0;
j1.LoadFromStream(ms);
Image1.Picture.Assign(j1);
ms.Clear;
fs.ReadBuffer( size, sizeof(integer));
ms.CopyFrom(fs, size );
ms.Position := 0;
j2.LoadFromStream(ms);
Image2.Picture.Assign(j2);
ms.Free;
fs.Free;
j1.Free;
j2.Free;
end;
SPeller (2002-04-13 13:56:00) [2]Копируешь в кончный файл по очереди все рисунки, при этом запоминая смещение каждого от начала файла.