将位图保存为字节数组会导致奇怪的文件大小

时间:2015-08-02 16:44:49

标签: c# bitmap windows-10 file-storage

我正在为将来的项目做一些测试,我将在其中创建一个图像加密器。现在我只是想把一个将位图转换为字节数组的方法,将其保存到文本文件,重新加载它,并以不同的名称重新保存。我让它工作......之后文件大小只是一个问题。我转换后的图像(从字节数组中读取以创建图像的图像)显示的文件大小比原始图像大。这是我的代码:

{{1}}

我认为问题是由于image.Save();功能,...我认为...没有为图像选择最佳压缩。也许我错了?这是两张图片的属性页面图片: enter image description here

您还会注意到原始图像的已保存字节数组版本显示的文件较大。 这是为什么?文件大小不应该在整个转换范围内保持不变吗?

更新:我很确定我用来转换图片的功能是使用不良的转换技术。这可以解释为什么原始png的大小与字节数组文件版本不同,后者应该相等。所以要解决这个问题,我需要一种有效或正确的方法来完成这两个函数所做的事情。

1 个答案:

答案 0 :(得分:-1)

原始文件很可能是以某种方式压缩的,重写文件最终会保存一个未压缩的文件,因为C#并不是很聪明。

并且如果C#以某种方式更新并且从上次使用它时变得更好,那么因为您将PNG转换为位图(位图不是大小有效)然后将位图保存为PNG < / p>