草庐IT

Bitmap压缩

全部标签

c# - 使用 Gzip 压缩/解压缩字节数组

我需要压缩一个字节数组。所以我写了这个片段:classProgram{staticvoidMain(){vartest="foobarbaz";varcompressed=Compress(Encoding.UTF8.GetBytes(test));vardecompressed=Decompress(compressed);Console.WriteLine("sizeofinitialtable="+test.Length);Console.WriteLine("sizeofcompressedtable="+compressed.Length);Console.WriteLine

c# - 如何使用太长/重复的路径处理解压缩 ZipFile

在Windows中解压缩文件时,我偶尔会遇到路径问题对于Windows来说太长了(但在创建该文件的原始操作系统中没问题)。由于不区分大小写而“重复”使用DotNetZip,ZipFile.Read(path)每当读取具有这些问题之一的zip文件时,调用就会出错。这意味着我什至无法尝试过滤掉它。using(ZipFilezip=ZipFile.Read(path)){...}处理读取这类文件的最佳方法是什么?已更新:示例zip来自这里:https://github.com/MonoReports/MonoReports/zipball/master重复:https://github.co

c# - 将 System.Windows.Media.ImageSource 转换为 System.Drawing.Bitmap

如何在C#中将System.Windows.Media.ImageSource转换为System.Drawing.Bitmap? 最佳答案 它是较旧的OP,但对于其他一些人来说仍然可以派上用场,因为在没有dll互操作或剪贴板hack的情况下找到更干净的解决方案需要一些时间。这对我有用,您可以在保存到文件或rtf流之前使用pngencoder来削减图像大小privateSystem.Drawing.ImageImageWpfToGDI(System.Windows.Media.ImageSourceimage){MemoryStrea

Roaring BitMap(高效压缩位图)

一、BitMap的数据稀疏问题BitMap的问题在于,不管业务中实际的元素基数有多少,它占用的内存空间都恒定不变。如果BitMap中的位的取值范围是1到100亿之间,那么BitMap就会开辟出100亿Bit的存储空间。但是如果实际上值只有100个的话,100亿Bit的存储空间只有100Bit为1,其余全部为0,数据存储空间浪费严重,数据越稀疏,空间浪费越严重。二、RoaringBitMap介绍为了解决位图稀疏存储浪费空间的问题,出现了很多稀疏位图的压缩算法,RoaringBitmap就是其中的优秀代表。RoaringBitmap是高效压缩位图,简称RBMRBM的历史并不长,它于2016年由S.

c# - SevenZipSharp - 压缩内存流

我正在使用SevenZipSharp将文件压缩成zip文件。有没有办法使用它从内存流创建zip(意思是,先将文件加载到内存流中)?谢谢,玛雅人。 最佳答案 我将SevenZipSharp与流一起使用,没有任何问题。SevenZip.SevenZipCompressorcompressor=newSevenZip.SevenZipCompressor();compressor.CompressionMethod=SevenZip.CompressionMethod.Lzma2;compressor.CompressionLevel=S

c# - .NET GZipStream 解压缩生成空流

我正在尝试序列化和压缩WPFFlowDocument,然后执行相反的操作-解压缩字节数组并反序列化以重新创建FlowDocument-使用.NETGZipStream类(class)。我正在按照MSDN上描述的示例进行操作,并且我有以下测试程序:varflowDocumentIn=newFlowDocument();flowDocumentIn.Blocks.Add(newParagraph(newRun("Hello")));Debug.WriteLine("Compress");byte[]compressedData;using(varuncompressed=newMemory

c# - 如何在没有第三方库的情况下序列化对象+压缩然后解压+反序列化?

我在内存中有一个大对象,我想将其作为blob保存到数据库中。我想在保存之前压缩它,因为数据库服务器通常不在本地。这是我目前拥有的:using(varmemoryStream=newMemoryStream()){using(vargZipStream=newGZipStream(memoryStream,CompressionMode.Compress)){BinaryFormatterbinaryFormatter=newBinaryFormatter();binaryFormatter.Serialize(gZipStream,obj);returnmemoryStream.ToA

c# - 我应该压缩内存中的 C# 对象以获得更好的性能吗?

我有一个应用程序(C#、WPF)可以显示许多财务图表以及来自服务器的实时数据流。在内存中收集的数据可能会变得有点大,我不想在磁盘上保留任何数据。由于历史数据本身不会改变,只会被添加,以某种压缩格式保留该数据(存储在集合对象中)是否有意义?是否有可能,如果可以,有人可以推荐一个好的做法吗?更新关于性能和权衡的一些注意事项:我知道压缩会增加访问数据的延迟,但是,用户只需要对到达的新数据进行快速更新。当访问已经呈现的数据(例如,研究或重新呈现它)时,他不需要快速响应。 最佳答案 压缩和解压缩会使您的应用程序变慢,因此对于性能(速度)而言,

c# - 可以在 ASP.NET/IIS 7 中有选择地禁用 gzip 压缩吗?

我正在使用长期异步HTTP连接通过AJAX向客户端发送进度更新。启用压缩后,不会以离散block的形式接收更新(原因很明显)。禁用压缩(通过将元素添加到)确实解决了问题:但是,这会在站点范围内禁用压缩。我想为除此之外的所有其他Controller和/或操作保留压缩。这可能吗?或者我是否必须使用自己的web.config创建一个新站点/区域?欢迎提出任何建议。附言写入HTTP响应的代码是:varresponse=HttpContext.Response;response.Write(s);response.Flush(); 最佳答案

c# - 如何使用 .NET 压缩目录?

我有一个包含多个文件的目录。我想将此文件夹压缩为zip或tar.gz文件。我如何在C#中完成他的工作? 最佳答案 您可以使用DotNetZipLibrary.它具有相当丰富和有用的功能。编辑:string[]MainDirs=Directory.GetDirectories(DirString);for(inti=0;i 关于c#-如何使用.NET压缩目录?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c