DeflateStreamで問題が発生しました。一部のデータは、最後まで繰り返し書き込まれています。
コードは次のとおりです。
Dim bytesin As Byte() = ... ' An array of compressed bytes
Dim bytesout As Byte()
Dim count As Integer
Using ms As New MemoryStream(bytesin)
Using ds As New Compression.DeflateStream(ms, Compression.CompressionMode.Decompress)
Using outputStream As New MemoryStream()
Dim buffer As Byte() = New Byte(1024) {}
While InlineAssignHelper(count, ds.Read(buffer, 0, buffer.Length)) > 0
outputStream.Write(buffer, 0, count)
End While
bytesout = outputStream.ToArray
End Using
End Using
End Using
Dim fs As FileStream = File.OpenWrite("fws.swf")
fs.Write(bytesout, 0, bytesout.Length)
fs.Flush()
fs.Close()
Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function
これをどのように説明できますか?
http://i.stack.imgur.com/d2ffF.png
アップデート
Ionic.Zlib.ZlibStreamとIonic.Zlib.DeflateStreamを試してみましたが、同じ奇妙な結果が得られました。