如何将图像存储在比通常的 Bitmap 实例更紧凑的内存中并足够快地访问它?
How to store image in memory more compact than usual Bitmap instance and access it fast enough?
我有像 5000*4000 像素这样的图像,我在表单上渲染每一帧。
这样加载的图像 Bitmap bmp = Image.FromFile("test.png");
使用大约 100 MB RAM,而文件大小为 40 - 50 MB!这样我的程序已经使用了 ~500 bm RAM。
如何更高效地存储图像,同时又能足够快地从中切割零件?我有一个巨大的图像并从中剪切部分以根据视图位置进行渲染。我以 50 FPS 调用 render 方法并且无法承受每帧从文件加载图像,因为它太慢了。
还有其他方法可以在内存中存储图像吗?
如果您想显示和操作它,您必须将未压缩的图像加载到内存中。没有办法解决这个问题。
减少这种情况的唯一可靠方法是降低所显示图像的分辨率。您可以将压缩后的图像存储在内存中,并在每次需要更改时从内存中而不是从磁盘中解压缩。
话虽如此,如今计算机有几 GB 的 RAM 可用,500MB 的 RAM 并不算多。
我有像 5000*4000 像素这样的图像,我在表单上渲染每一帧。
这样加载的图像 Bitmap bmp = Image.FromFile("test.png");
使用大约 100 MB RAM,而文件大小为 40 - 50 MB!这样我的程序已经使用了 ~500 bm RAM。
如何更高效地存储图像,同时又能足够快地从中切割零件?我有一个巨大的图像并从中剪切部分以根据视图位置进行渲染。我以 50 FPS 调用 render 方法并且无法承受每帧从文件加载图像,因为它太慢了。
还有其他方法可以在内存中存储图像吗?
如果您想显示和操作它,您必须将未压缩的图像加载到内存中。没有办法解决这个问题。
减少这种情况的唯一可靠方法是降低所显示图像的分辨率。您可以将压缩后的图像存储在内存中,并在每次需要更改时从内存中而不是从磁盘中解压缩。
话虽如此,如今计算机有几 GB 的 RAM 可用,500MB 的 RAM 并不算多。