如何更有效地加载和管理图像?

时间:2010-09-15 09:20:34

标签: c# image compact-framework windows-ce

我有一个PND运行Windows CE(5.0和6.0)的前端程序。它使用大量图像(目前采用png格式)作为按钮或用于装饰目的。图像通过new Bitmap(path);

从SD卡加载

我目前正在使用框架的v3.5。

加载后,OS +我的应用程序占用了设备内存的75%到80%。

如何优化所有文件?

2 个答案:

答案 0 :(得分:4)

我想到的优化这些图片的唯一方法是将它们调整到需要它们的实际尺寸(就像大多数图标将以16x16尺寸使用),如果你也存储为位图而不是你的卡片你也可以将使用过的调色板设置为与给定图片的确切需要相匹配的尺寸(例如,16x16的图片有256个像素。所以你需要256种颜色的最大调色板,但也可能是自定义的16种调色板足够,因为你的照片只有16种不同的颜色。)

作为第二种方法,您还可以检查是否可能多次加载相同的图片。在这种情况下,您应该只加载一次并多次使用它。

最后一个,我想到的是属于背景图片。如果你有一个坚实的背景,你不需要一个完整大小的图像。只需取一个1x1位图并将其拉伸到所需的大小。渐变背景的计数相同,但在这种情况下,您将获得一个将被拉伸的1x2位图。最后但并非最不重要的是,如果你有一个规则的模式,只需从中获取最小的独特砖块并使用一些瓦片机制。

答案 1 :(得分:0)

如果您创建操作系统,是否可以将图像存储为操作系统的一部分?

如果可能,并且图像完全加载到RAM,您只能在需要显示的基础上加载图像,并在不需要时卸载它们。这将消除一些加载时间,因为访问RAM比访问SD卡更快。

使用相同概念的另一个技巧是将所有图像复制到基于RAM的FS并仅在需要的基础上加载它们 - 缺点是需要在每次重启后完成。