Конвертировать jpg Byte [] в Texture2D - PullRequest
1 голос
/ 01 апреля 2012

Мне нужно импортировать изображения в формате JPEG в приложение WP7 / XNA со связанными метаданными. Программа, которая управляет экспортом этих изображений в файл XML с закодированным байтом [] файлов jpg.

Я написал собственный импортер / процессор, который успешно импортирует повторно идентифицированные объекты в мой проект XNA.

Мой вопрос, учитывая байт [] jpg, каков наилучший способ преобразовать его обратно в Texture2D.

// 'Standard' method for importing image
Texture2D texture1 = Content.Load<Texture2D>("artwork"); // Uses the standard Content processor "Texture - XNA Framework" to import an image.

// 'Custom' method
var myCustomObject = Content.Load<CompiledBNBImage>("gamedata"); // Uses my custom content Processor to return POCO "CompiledBNBImage"
byte[] myJPEGByteArray = myCustomObject.Image; // byte[] of jpeg
Texture2D texture2 = ???? // What is the best way to convert myJPEGByteArray to a Texture2D?

Большое спасибо за вашу помощь. : -)

DS

1 Ответ

1 голос
/ 02 апреля 2012

Чтобы ответить на первую часть вашего вопроса, вы должны создать экземпляр Texture2D, а затем заполнить его информацией о цвете с помощью метода SetData ().Просто убедитесь, что в конструкторе указаны правильные размеры.

Texture2D tex = new Texture2D(graphics, 100, 100);
tex.SetData(byteArray);

Вторая и, возможно, сложная часть будут гарантировать, что массив байтов будет в правильном формате для метода SetData (), хотя и даст емупытаться;это может просто работать в текущем формате.:)

...