CompressEncoder

LZ法(詳しいことはいまいちわかりませんが)で圧縮してくれるStreamらしいです。

基本的にはCompressDecoderとセットで使います(性質上、セーブ・ロードなどというコード的にも時間的にも離れている部分かもしれませんが)。

Example

コンストラクタに別のStreamを指定して生成します。Encoderにデータを流し込むとそのStreamに圧縮した内容が書き込まれる、という使い方をします。

src : FileStream("foo.png", "r");
tmp : FileStream("tmp.z", "w");
enc : CompressEncoder(tmp);
enc.pour_all(src);
src.close();
tmp.close();
 
dst : FileStream("bar.png", "w");
tmp = FileStream("tmp.z", "r");
dec : CompressDecoder(tmp);
dst.pour_all(dec);
dst.close();
tmp.close();

tmp.zというファイルを介してEncoder/Decoderで圧縮・展開するプログラムを書いてみました。
pngだとむしろサイズが大きくなってしまいましたが、生のバイナリデータやテキストデータではそれなりにサイズが小さくなりました。

Methods

(constructor) インスタンス生成
(destructor) インスタンス破棄
close ストリームを閉じる
write ストリームに書き込む

Methods inherited from Stream

reference/compressencoder.txt · 最終更新: 2011/02/05 13:35 by sukai
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0