Iva*_*nov 17 c# compression zlib .net-3.5
我的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();
}
Run Code Online (Sandbox Code Playgroud)
如何将byte []数组直接传递给该函数?我打算将其保存为压缩文件,然后使用压缩文件的位置调用该函数,但我不知道如何从byte []数组中保存文件,也不知道传递byte []数组的方法作为输入文件.
任何帮助将受到高度赞赏.
谢谢.
Chr*_*yer 78
使用static void System.IO.File.WriteAllBytes(string path,byte [] bytes)方法.
byte[] buffer = new byte[200];
File.WriteAllBytes(@"c:\data.dmp", buffer);
Run Code Online (Sandbox Code Playgroud)
public static void SaveFile(this Byte[] fileBytes, string fileName)
{
FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
fileStream.Write(fileBytes, 0, fileBytes.Length);
fileStream.Close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64369 次 |
| 最近记录: |