XNA.Texture2D в System.Drawing.Bitmap

Мне нужно загрузить XNA.Texture2D в PictureBox.

я пробовал это: http://www.gamedev.net/community/forums/viewreply.asp?ID=3224621, но это не работает. Какие-либо предложения?


person nilphilus    schedule 04.05.2010    source источник


Ответы (2)


Вы сможете использовать этот метод, но убедитесь, что ваш XNA Texture2D создан в формате 32bbpARGB. Любой другой формат не позволит этому методу работать напрямую.

person Reed Copsey    schedule 04.05.2010
comment
[Текстура2D = bgr32]. но есть еще одна проблема, как я могу «переформатировать» текстуру в 32bbpARGB? - person nilphilus; 05.05.2010
comment
for (int i = 0; i ‹ 4 * texture.Width * texture.Height; i += 4) { byte tmp = textureData[i + 0]; данные текстуры[i + 0] = данные текстуры[i + 2]; //b textureData[i + 2] = tmp; //r textureData[i + 3] = 255; //A } это не займет много времени, но его можно улучшить. - person nilphilus; 05.05.2010

Более простой способ сделать это — сохранить Texture2D с помощью Texture2D.SaveAsPng или Texture2D.SaveAsJpeg в поток памяти и открыть виртуальный файл с помощью Bitmap(Stream).

person ClassicThunder    schedule 13.02.2012