本文簡要介紹ruby語言中 Zlib::Deflate.new
的用法。
用法
Zlib::Deflate.new(level=DEFAULT_COMPRESSION, window_bits=MAX_WBITS, mem_level=DEF_MEM_LEVEL, strategy=DEFAULT_STRATEGY)
為壓縮創建一個新的 deflate 流。如果給定參數為 nil,則使用該參數的默認值。
level
將 deflate 流的壓縮級別設置在 0(無壓縮)和 9(最佳壓縮)之間。已定義以下常量以使代碼更具可讀性:
-
Zlib::DEFAULT_COMPRESSION
-
Zlib::NO_COMPRESSION
-
Zlib::BEST_SPEED
-
Zlib::BEST_COMPRESSION
有關詳細信息,請參閱www.zlib.net/manual.html#Constants。
window_bits
設置曆史緩衝區的大小,應該在 8 到 15 之間。此參數的值越大,壓縮效果越好,但會占用內存。
mem_level
指定應為內部壓縮狀態分配多少內存。 1 使用最小內存但速度較慢並降低壓縮率,而 9 使用最大內存以獲得最佳速度。默認值為 8。定義了兩個常量:
-
Zlib::DEF_MEM_LEVEL
-
Zlib::MAX_MEM_LEVEL
strategy
設置放氣壓縮策略。可以使用以下策略:
- Zlib::DEFAULT_STRATEGY
-
對於普通數據
- Zlib::過濾
-
對於過濾器或預測器產生的數據
- Zlib::已修複
-
防止動態霍夫曼代碼
- Zlib::HUFFMAN_ONLY
-
防止字符串匹配
- Zlib::RLE
-
專為更好地壓縮 PNG 圖像數據而設計
請參閱常量以獲取更多說明。
例子
基本的
open "compressed.file", "w+" do |io|
io << Zlib::Deflate.new.deflate(File.read("big.file"))
end
自定義壓縮
open "compressed.file", "w+" do |compressed_io|
deflate = Zlib::Deflate.new(Zlib::BEST_COMPRESSION,
Zlib::MAX_WBITS,
Zlib::MAX_MEM_LEVEL,
Zlib::HUFFMAN_ONLY)
begin
open "big.file" do |big_io|
until big_io.eof? do
compressed_io << zd.deflate(big_io.read(16384))
end
end
ensure
deflate.close
end
end
雖然此示例可以工作,但為了獲得最佳優化,請查看您的特定時間、內存使用和輸出空間要求的標誌。
相關用法
- Ruby Deflate.deflate用法及代碼示例
- Ruby DefMethod模塊用法及代碼示例
- Ruby DependencyState.pop_possibility_state用法及代碼示例
- Ruby DependencyGraph.==用法及代碼示例
- Ruby DependencyGraph.vertices用法及代碼示例
- Ruby Delegator類用法及代碼示例
- Ruby Deprecate模塊用法及代碼示例
- Ruby DependencyGraph.tsort用法及代碼示例
- Ruby Date.valid_civil?用法及代碼示例
- Ruby DateTime jisx0301()用法及代碼示例
- Ruby Date cwday()用法及代碼示例
- Ruby Date ctime()用法及代碼示例
- Ruby Date.gregorian?用法及代碼示例
- Ruby DRb.regist_server用法及代碼示例
- Ruby DH.public_key用法及代碼示例
- Ruby Date asctime()用法及代碼示例
- Ruby DateTime類用法及代碼示例
- Ruby DateTime.hour用法及代碼示例
- Ruby DateTime.jd用法及代碼示例
- Ruby DateTime.zone用法及代碼示例
- Ruby DateTime ordinal()用法及代碼示例
- Ruby DateTime.second用法及代碼示例
- Ruby Date.strftime用法及代碼示例
- Ruby Digest.update用法及代碼示例
- Ruby DSA.export用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Deflate.new。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。