2015-04-07 3 views
0

Я загружаю изображение в ShaderResourceView, которое будет использоваться в качестве фонового изображения. Это то, что я в настоящее время с помощью:Установите изображение в ShaderResourceView и сохраните пропорции

ShaderResourceView.FromFile(_device, imagepath); 

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

ответ

0

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

Существующее сообщение на SO соответствует изображению с заданным размером, затем заполняет пробел пробелом и создает новое изображение. Ссылка: https://stackoverflow.com/a/2001462/978622

Другое сообщение показывает, как легко преобразовать из изображения в bytearray, который является одним из типов ShaderResourceView, из которого можно создать шейдер. Ссылка: https://stackoverflow.com/a/3801289/978622

Мой код, который помещает все это вместе:

var original = Image.FromFile(path); 
Image resized = FixedSize(original, actualWidth, actualHeight); 
var byteImage = ImageToByteArray(resized); 
var srv = ShaderResourceView.FromMemory(_device, byteImage); 
Смежные вопросы