Рендеринг нескольких изображений в растровое изображение в C # Winforms - PullRequest
1 голос
/ 14 июня 2009

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

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

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

Ответы [ 2 ]

2 голосов
/ 15 июня 2009

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

   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 без их «уничтожения» растрового изображения.

0 голосов
/ 16 июня 2009

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

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

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