/ /エリクシルのバイトリストをZlibで膨らませる方法は? - zlib、エリキシル

エリクシルのバイトリストをZlibで膨らませるには? - zlib、エリキシル

圧縮されたファイルを表すElixirのバイナリを与えられたら、Erlangのzlibにそれらを渡してどのように膨張させることができますか?

compressed = <<120, 218, 237, 125, 123, 115, 28, 71, 126, ...>>

私が試してみました:

z = :zlib.open()
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)

返されるエラーは次のとおりです。

** (ErlangError) erlang error: :einval
:zlib.call/3
:zlib.inflate/2

"iodata"を引数として期待しているので、変換する必要があるかもしれません。

回答:

回答№1の場合は12

zlibポートを開いた後、あなたは inflateInit それを呼び出す前に inflate

z = :zlib.open()
:zlib.inflateInit(z)
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)