Рендеринг нескольких изображений в растровое изображение в C # Winforms

Я разрабатываю набор приложений для создания игр на XNA. Используя Graphics.drawImage, я могу легко нарисовать изображение для предварительного просмотра из объекта XNA texture2D.

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

Как мне это сделать? Могу ли я просто рассматривать Graphics.drawImage как обычный вызов отрисовки XNA и визуализировать раздел объекта, который я хочу, в растровое изображение, просматривая список и отрисовывая каждый элемент в растровом изображении по месту и по порядку? Или каждый вызов graphics.DrawImage уничтожает растровое изображение, на которое он рисует?


person Community    schedule 14.06.2009    source источник
comment
Что это за Graphics.DrawImage, о которой вы говорите?   -  person RCIX    schedule 15.06.2009


Ответы (2)


Это то, что вы ищете?

   Bitmap bmp = new Bitmap(100, 100);
   Graphics g = Graphics.FromImage(bmp);
   g.DrawImage(Properties.Resources.Foo);
   Bitmap bar = Properties.Resources.Bar;
   bar.MakeTransparent(bar.GetPixel(0, 0));
   g.DrawImage(bar);

Пока изображения прозрачны (что вы можете делать во время выполнения с помощью вызовов Bitmap.MakeTransparent ()), вы можете накладывать элементы с помощью нескольких вызовов DrawImage, не «разрушая» растровое изображение.

person NascarEd    schedule 15.06.2009

Звучит примерно правильно. У меня есть набор объектов Texture2D xna, каждый из которых хранит свой путь к файлу. Используя Image.FromFile (), я использую этот путь для создания объектов Image, затем мне нужно нарисовать части изображения, используя Graphics.DrawImage () и Rectangle, описывающий раздел, для объекта Graphics. Отсюда я могу просто сделать несколько вызовов g.DrawImage () в порядке «Назад на передний план».

Поскольку Texture2D и Image, если на то пошло, могут справиться с прозрачностью, а все мои текстовые источники - это формат PNG, я предполагаю, что могу использовать класс Image вместо класса Bitmap и сэкономить на вызове MakeTransparent, правильно?

person Community    schedule 15.06.2009