WinForms: BackgroundImage внедрен как растровое изображение? - PullRequest
3 голосов
/ 22 ноября 2011

Я недавно отошел от разработки бизнес-приложений до попыток (как хобби) попробовать создать реализацию карточной игры в .NET (C #).Естественно, есть некоторые различия, с которыми я столкнулся, одним из которых является графическая природа игровых приложений.

Инстинктивно я сохранял все изображения, используемые в качестве фона для форм и элементов управления, в формате jpegs, прежде чем задавать их в качестве свойствв проекте.Затем я начал задаваться вопросом, были ли они встроены как растровые изображения в любом случае, и, возможно, мне лучше оставить их в виде файлов .bmp.Я пытался найти ответ на этот вопрос, прежде чем размещать здесь, но не было никакой радости.

Существенно ли преимущество использования файлов jpg по сравнению с bmp при установке свойства BackgroundImage во время разработки?Для изображений, загруженных во время выполнения, изображений, поставляемых с приложением, которые по какой-либо причине существуют в виде отдельных файлов (возможно, в папке ресурсов), я вижу преимущество, но я не уверен насчет первого.

Любое понимание будет оценено.

1 Ответ

2 голосов
/ 22 ноября 2011

Для повышения производительности важно использовать предварительно вычисленное растровое изображение для изображения при настройке фона.

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;
     }
} 

Пример кода был извлечен из этого поста , который объясняет другие методы для улучшения производительности рисования фоновых изображений.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...