WinForms:将BackgroundImage嵌入为位图?

时间:2011-11-22 12:58:04

标签: c# .net winforms

我最近在业务应用程序编程方面与尝试用.NET(C#)创建卡片游戏实现(仅作为一种爱好)分道扬..当然,我遇到了一些差异,其中之一就是游戏应用程序的图形性质。

本能地,我将用作表单和控件背景的所有图像保存为jpeg,然后再将它们设置为项目中的属性。然后我开始怀疑它们是否被嵌入为位图,如果可能我最好将它们保留为.bmp文件。在发布这里之前我试图找到这个问题的答案,但没有任何乐趣。

在设计时设置BackgroundImage属性时,在bmp上使用jpg文件是否有显着的好处?对于在运行时加载的图像,随应用程序一起提供的图像,无论出于何种原因作为单个文件存在(可能在资源文件夹中),我可以看到好处,但我不确定前者。

任何见解都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

重要的是在设置背景时为图像使用预先计算的位图,以提高性能。

private Bitmap renderBmp;
public override Image BackgroundImage
{
     set
     {
          Image baseImage = value;
          renderBmp = new Bitmap(Width, Height,
              System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
          Graphics g = Graphics.FromImage(renderBmp);
          g.DrawImage(baseImage, 0, 0, Width, Height);
          g.Dispose();
     }
     get
     {
          return renderBmp;
     }
} 

代码示例是从this post中提取的,它解释了其他改善绘制背景图像性能的技巧。

希望它有所帮助。