什么图像格式可以c#加载最快?

时间:2012-11-01 11:35:12

标签: c# winforms performance image

这似乎是一个奇怪的问题,我不知道图像的格式,所以我会继续问...

我正在制作一个使用按钮网格的扫雷游戏(与不同的东西相关),然后我使用backgroundImage向按钮添加一个精灵。如果网格是9x9,那很好。 15x15它减慢速度和30x30你可以看到每个按钮被加载。

这引起了我的疑问:哪种图像格式加载速度最快?显然,文件大小是加载速度的一部分,但是,我正在询问是否,例如,jpeg - 与gif相同的文件大小 - 将加载更快。或者是bmp,png等。

我问这是为了看看我是否可以使用不同的格式更快地加载网格。

谢谢!

4 个答案:

答案 0 :(得分:8)

您希望更快地绘制的图像格式。只有一个,其像素格式直接与视频适配器的设置匹配,因此可以直接复制像素数据而无需进行格式调整。

在大多数现代机器上,都是PixelFormat.Format32bppPArgb。它比其他所有人快了十倍

从资源或文件加载图片时,您不会获得该格式,您必须create it

请注意,如果网格中的每个单元格都是控件,这仍然不会为您提供出色的绘画速度。特别是如果它是一个按钮,它们绘制起来非常昂贵,因为它们支持透明效果。如果您在一个Paint事件处理程序中绘制整个网格,那么您只能在此处获得优势。就像表格一样。

完全不同的方法是使用this hack来掩盖可见的延迟。

答案 1 :(得分:3)

使用8位PNG或GIF格式并减少调色板中的颜色数量。某些图像程序(如PhotoShop)允许您保存网络图像并微调图像设置。通过将调色板从256减少到32等,您可以大大减小文件的大小。图像的颜色越少,文件大小就越小。

PNG有一个类似的功能叫做“隔行扫描”。您可能希望关闭此功能,以便更快地下载完整图像。

由于8位PNG和GIF格式有可能产生更小的图像文件,因此在为应用程序创建图形和插图时,请记住这一点。尝试将颜色数量保持在最低限度,并使用平面图形而不是照片。这样,您就可以使用16种颜色的调色板创建图像,从而使文件大小非常小并且可以快速加载。

最好的问候

答案 2 :(得分:1)

每次刷按钮时都在重新加载图像吗?如果是这样,那就是你的问题 - 用缓存解决它。

您是否以原始尺寸绘制图像?运行时重新采样可以创建性能损失。

答案 3 :(得分:0)

使用PNG或GIF,它是更快的图像类型