如何将图像存储在内存中,比通常的位图实例更紧凑,并足够快地访问它

本文关键字:实例 访问 位图 存储 图像 内存 | 更新日期: 2023-09-27 18:29:17

我有像5000*4000像素的图像,我在表单上渲染每一帧。像Bitmap bmp = Image.FromFile("test.png");这样加载的图像使用大约100 mb的RAM,而文件大小是40-50 mb!这样,我的程序已经使用了大约500 bm的RAM。

如何更高效地存储图像,但又能足够快地从中切割零件?我有一个巨大的图像,并根据视图位置从中剪切部分进行渲染。我调用50 FPS的渲染方法,无法负担每帧从文件加载图像的费用,因为它太慢了。

有没有其他方法可以将图像存储在内存中?

如何将图像存储在内存中,比通常的位图实例更紧凑,并足够快地访问它

如果你想显示和操作未压缩的图像,就必须将其加载到内存中。

减少这种情况的唯一可靠方法是降低正在显示的图像的分辨率。您可以将压缩后的图像存储在内存中,并在每次需要更改时从内存而不是磁盘中解压缩。

话虽如此,在计算机有几GB可用RAM的情况下,500MB的RAM并没有那么多。