图像对应用程序内存使用的影响

时间:2016-03-12 16:27:48

标签: c# .net image memory bytearray

我试图计算图像对应用程序的内存使用影响。我正在从字节数组中加载内存中的图像,我注意到内存使用量与图像的大小不成比例。

我有一个96389字节的字节数组,我可以通过以下方式转换为图像:

var actualImage = (Bitmap)((new ImageConverter()).ConvertFrom(bytes));
var actualImage = Image.FromStream(new System.IO.MemoryStream(bytes));

我希望应用程序的内存使用量增加相同的数量,但实际上发生的情况是应用程序的内存增加了17324千字节。

为什么会发生这种情况?如何避免使用太多内存?

2 个答案:

答案 0 :(得分:1)

可能会压缩存储在bytes中的图像。图像不会在Bitmap类的内存中压缩。如果你想利用这些像素,你无能为力。

答案 1 :(得分:0)

它只是意味着你的原始图片被压缩了。在未压缩的位图表示中,图像使用每个像素4个字节(每个通道一个红色/绿色/蓝色,一个用于alpha通道)。

  

如何避免使用太多内存?

这取决于你想要做什么。降低图片分辨率,只加载其中的一部分等等......但是如果你需要以原始分辨率显示全部图片,那么就无法减少使用的内存量。