TCPクライアントがパケット内の画像を受信します。画像はzlibで圧縮されます。タスクは、画像を解凍してフォームに配置することです。
圧縮された画像を現在のディレクトリに保存し、解凍して、解凍したファイルをフォームにロードすることを計画しています。
最初の問題は、ファイルの保存(圧縮)にあります。zlibはファイルを解凍して保存できます。
以下のコードは、圧縮ファイルをロードし、解凍後に保存します。
private void decompressFile(string inFile, string outFile)
{
System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create);
zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream);
System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open);
try
{
CopyStream(inFileStream, outZStream);
}
finally
{
outZStream.Close();
outFileStream.Close();
inFileStream.Close();
}
}
public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
{
byte[] buffer = new byte[2000];
int len;
while ((len = input.Read(buffer, 0, 2000)) > 0)
{
output.Write(buffer, 0, len);
}
output.Flush();
}
byte []配列をその関数に直接渡す方法は?圧縮して保存してから、圧縮ファイルの場所を指定して関数を呼び出す予定ですが、byte[]配列からファイルを保存する方法もbyte[]配列を渡す方法もわかりません。入力ファイルとして。
どんな助けでも大歓迎です。
ありがとう。