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

Image impact on application memory usage

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

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

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

我希望应用程序的内存使用量增加等量,但实际上应用程序的内存增加了 17324 KB。

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

可能,存储在bytes中的图像被压缩了。图片没有压缩在内存里面Bitmapclass。如果你想利用像素,你无能为力。

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

How to avoid using too much memory?

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