Войти
ПрограммированиеФорумГрафика

Как узнать, что в драйвере видеокарты включено сохранение соотношения сторон изображения?

#0
21:42, 25 сен. 2012

Например, когда на экран с соотношением сторон 16:9 выводится изображение с соотношением сторон 4:3, по бокам появляются черные полосы, и изображение сохраняет свои пропорции. Это делается включением соответствующей опции в настройках видеокарты, в противном случае изображение получается растянутым и искаженным. Можно ли программным путем узнать, включена ли данная опция?


#1
21:55, 25 сен. 2012

Имеет ли смысл? Такие настройки, как правило, есть и у моников, так что все варианты всё равно не предугадаешь

#2
14:38, 26 сен. 2012

еще и некоторые мониторы при неродных разрешениях могут добавлять полосы, ты и у них будешь спрашивать?

#3
17:37, 26 сен. 2012

Возьми соотношение самого большого разрешения и оставь те размеры экранов которые соответствуют соотношению самого большого. И будет тебе счастье.

#4
18:27, 26 сен. 2012

k119_55524
у меня 1280х1024, отношение 5:4. Не существует других поддерживаемых разрешений с таким отношением, что же, отбирать у меня выбор?

Факт наличия черных полос узнать скорее всего не получится, я бы просто в настройках рядом с выбором разрешения добавил выбор пропорций:
- как у нативного разрешения
- как у выбранного разрешения
- принудительно 16:9
- принудительно 16:10
- принудительно 4:3
- принудительно 5:4

По по умолчанию либо первый, либо второй пункт в зависимости от того, каких драйверов больше и какие у них настройки по умолчанию (это надо исследование проводить). Как-то так.

#5
18:29, 26 сен. 2012

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

#6
18:45, 26 сен. 2012

Если это настройка самого монитора, то ты никак не узнаешь, как у него пропорции отображаются

#7
18:46, 26 сен. 2012

Muffy
Имеет смысл пообщаться с монитором - возможно, есть методы узнать у монитора текущее разрешение. Драйвер, если он попытается сохранить разрешение, будет рисовать полосы (никого не ставя в известность) и для этого реальное разрешение для монитора будет больше, чем нужно.

Скажем, при устанвоке разрешения 1280х720 (16:9) на мониторе 1280х800 (16:10) драйвер все равно оставит разрешение 1280х800 для монитора, а системе скажет, что на самом деле это 1280х720 и будет сам по 40 пикселей дорисовывать, никому ничего не говоря. Вот по этой разнице величин и можно определить поведение драйвера.

Кстати, еще способ (но требующий человеческого вмешательства): при установке другого разрешения определять, где будут возможные черные полосы по краям, нарисовать к ним стрелочки и подписать: "Тут есть чёрные полосы?" и по ответу пользователя скорректировать пропорции графики :)

ПрограммированиеФорумГрафика

Тема в архиве.