我正在制作一个使用按钮网格的扫雷游戏(与不同的东西相关),然后我使用backgroundImage
向按钮添加一个精灵。如果网格是9x9,那很好。 15x15它减慢速度和30x30你可以看到每个按钮被加载。
这引起了我的疑问:哪种图像格式加载速度最快?显然,文件大小是加载速度的一部分,但是,我正在询问是否,例如,jpeg - 与gif相同的文件大小 - 将加载更快。或者是bmp,png等。
我问这是为了看看我是否可以使用不同的格式更快地加载网格。
谢谢!
答案 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,它是更快的图像类型