英語版
このページの英語版を見る
std.zlib
zlib ライブラリを使用してデータを圧縮/解凍する。
Examples:
バッファが小さい場合は compressと
uncompressを直接使うことができる。
import std.zlib; auto src = "the quick brown fox jumps over the lazy dog\r the quick brown fox jumps over the lazy dog\r"; ubyte[] dst; ubyte[] result; dst = compress(src); result = cast(ubyte[]) uncompress(dst); assert(result == src);圧縮するデータが1つのバッファに収まらない場合は、次のようにする。 Compressと UnCompress.
import std.zlib; import std.stdio; import std.conv : to; import std.algorithm.iteration : map; UnCompress decmp = new UnCompress; foreach (chunk; stdin.byChunk(4096).map!(x => decmp.uncompress(x))) { chunk.to!string.write; }
参考文献 ウィキペディア
License:
Authors:
ソース std/zlib.d
- class
ZlibException
: object.Exception; - エラーは ZlibException をスローする。
- uint
adler32
(uintadler
, const(void)[]buf
); バッファ分のデータの Adler-32 チェックサムを計算する。
Parameters:uint adler
計算の開始チェックサムを指定する。新しいチェックサムには を使用する。この関数の出力を使用する。 の出力を使用する。 const(void)[] buf
入力データを含むバッファ Returns:提供された入力データと開始チェックサムのuint 。Examples:static ubyte[] data = [1,2,3,4,5,6,7,8,9,10]; uint adler = adler32(0u, data); writeln(adler); // 0xDC0037
- uint
crc32
(uintcrc
, const(void)[]buf
); バッファ分のデータのCRC32チェックサムを計算する。
Parameters:uint crc
計算の開始チェックサムを指定する。0を使用する。 を使用する。この関数の出力を使用する。 の出力を使用する。 const(void)[] buf
入力データを含むバッファ Returns:与えられた入力データと開始チェックサムに対するuint チェックサム。See Also:- ubyte[]
compress
(const(void)[]srcbuf
, intlevel
);
ubyte[]compress
(const(void)[]srcbuf
); データを圧縮する
Parameters:const(void)[] srcbuf
圧縮するデータを含むバッファ。 int level
圧縮レベル。有効な値は -1 ~ 9 で、-1 はデフォルトの圧縮レベル (6)、0 は圧縮なし、1 は圧縮を表す。 はデフォルトのレベル(6)、0は圧縮なし、1は最も圧縮率が低く、9は最も圧縮率が高い。 は最も圧縮度が低く、9は最も圧縮度が高い。 Returns:圧縮データ- void[]
uncompress
(const(void)[]srcbuf
, size_tdestlen
= 0u, intwinbits
= 15); - srcbuf[]内のデータを圧縮解除する。Parameters:
const(void)[] srcbuf
圧縮データを含むバッファ size_t destlen
解凍されたデータのサイズ。 正確である必要はないが、正確なサイズが与えられると解凍が速くなる になる。 int winbits
最大ウィンドウサイズの底2の対数。 Returns:伸長データ。 - enum
HeaderFormat
: int; - 圧縮ストリームを包むヘッダー形式
deflate
- 標準の zlib ヘッダ
gzip
- gzip ファイルフォーマットヘッダ
determineFromData
- が解凍時に使われる。データを見てストリーム形式を自動的に検出しようとする。
- class
Compress
; - 圧縮されるデータが一つのバッファにまとまっていない場合に使用する。
- this(int
level
, HeaderFormatheader
= HeaderFormat.deflate);
this(HeaderFormatheader
= HeaderFormat.deflate); - コンストラクタ。Parameters:
int level
圧縮レベル。有効な値は1~9で、1が最も圧縮率が低く、9が最も圧縮率が高い。 で、9 が最も圧縮される。デフォルト値は6である。 HeaderFormat header
で利用可能なオプションの1つに圧縮型を設定する。 で指定する。 HeaderFormat.デフォルトはHeaderFormat.deflateである。 See Also: - const(void)[]
compress
(const(void)[]buf
); - bufのデータを圧縮して返す。Parameters:
const(void)[] buf
圧縮するデータ Returns:圧縮されたデータ。連続した呼び出しから返されるバッファは、連結されるべきである。 - void[]
flush
(intmode
= Z_FINISH); - 残りのデータを圧縮して返す。 返されたデータは、compress()によって返されたデータに追加されなければならない。Parameters:
int mode
以下のいずれかである: - Z_SYNC_FLUSH
- フラッシングを次のバイト境界に同期させる。 より多くのデータを後で圧縮する場合に使用する。
- Z_FULL_FLUSH
- フラッシングを次のバイト境界に同期させる。 後でさらにデータを圧縮する場合に使用する、 この時点で伸長器を再起動可能にしておく必要がある。 この時点で再開可能である必要がある。
- Z_FINISH
- (デフォルト) データの圧縮が終了したときに使用される。
- class
UnCompress
; - 解凍するデータが1つのバッファにすべて入っていない場合に使用する。
- this(uint
destbufsize
);
this(HeaderFormatformat
= HeaderFormat.determineFromData); - destbufsize は D.zlib.uncompress() と同じである。
- const(void)[]
uncompress
(const(void)[]buf
); - buf 内のデータを展開し、展開後のデータを返す。 これを連続して呼び出すと返されるバッファは連結されなければならない。 する。
- void[]
flush
(); - 残りのデータを解凍して返す。 返されたデータは、uncompress()によって返されたデータに追加されるべきである。 UnCompressオブジェクトはそれ以上使用できない。
- const @property bool
empty
(); - すべての入力データが解凍され、それ以降のデータがない場合は真を返す。 を返す。Examples:
// いくつかのランダムデータ ubyte[1024] originalData = void; // ガベージデータを追加する(またはしない、どちらでも機能する) auto compressedData = cast(ubyte[]) compress(originalData) ~ cast(ubyte[]) "whatever"; auto decompressor = new UnCompress(); auto uncompressedData = decompressor.uncompress(compressedData); assert(uncompressedData[] == originalData[], "The uncompressed and the original data differ"); assert(decompressor.empty, "The UnCompressor reports not being done");
Copyright © 1999-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku