Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TCompressionStream [D7, XP]


savyhinst ©   (2008-01-18 18:22:00) 

Здраствуйте.
Подскажите пож. как использовать TCompressionStream?
Желательно на примере сохранения и загрузки туда чего-либо. Например картинки из TImage.
Спасибо за внимание.


Efir   (2008-01-18 20:56:00) [1]

Примерно так, запись:

var
 cs:TCompressionStream;
 f:TFileStream;
 bmp:TBitmap;

f:=TFileStream.Create('куда сохраняем', fmWrite);
cs:=TCompressionStream.Create(clDefault, f);
bmp.SaveToStream(cs);

Считывание:

const
 BuffSize = 16384;
var
 f:TFileStream;
 ms:TMemoryStream;
 cs:TDecompressionStream;
 BytesRead:integer;
 bmp:TBitmap;

ms:=TMemoryStream.Create;
f:=TFileStream.Create(FileName, fmOpenRead);
cs:=TDecompressionStream.Create(f);
repeat
 BytesRead:=cs.Read(Buffer, BuffSize);
 ms.Write(Buffer, BytesRead);
until BytesRead<BuffSize;
bmp.ReadFromStream(ms);

Соответственно не забывая try-finaly и free.


Palladin   (2008-01-18 18:27:00) [2]

как обычный stream, только соответственно read работать не будет
лучше использовать процедуры ZCompressStream/ZDecompressStream


Наверх

Титульная страница Поиск, карта сайта Написать письмо