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

Вниз

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

 
Antonio   (2002-04-13 13:39) [0]

Подскажите пожалуста, как запихнуть несколько картинок jpg в один файл. Что-то типа: DXImageList1.Items.SaveToFile"bla_bla.dat")


 
SPeller ©   (2002-04-13 13:56) [1]

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


 
MBo ©   (2002-04-13 14:33) [2]

) Сохранение несколько объектов, обладающих методом 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;



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
14-60832
AlexanderVasjuk
2002-07-24 18:30
2002.08.19
Вопрос не в тему


4-60911
PSERG
2002-06-15 10:15
2002.08.19
Путь к загруженой DLL


1-60692
Edvin
2002-08-06 13:45
2002.08.19
Эмулировать нажатие Ctrl+V


3-60519
AlexDulub
2002-07-30 00:55
2002.08.19
Работа с ADO


3-60485
vich
2002-07-25 02:28
2002.08.19
Пытаюсь сравнить дату из базы с системной и выдать сообщение.