Масштабирование – функция весьма полезная, именно благодаря ей мы получаем возможность детально рассмотреть какой-то объект на экране компьютера. Впрочем, на современных мониторах с их большими диагоналями масштабирование, в общем-то, и не нужно, а в ряде случаев может даже мешать. Что делать в этом случае?
Нередко проблемы из-за масштабирования возникают в компьютерных играх, особенно когда какую-нибудь старую игру запускают на компьютере с широкоформатным монитором. В этом случае необходимо через меню игры зайти в её настройки и установить там такое разрешение, которое будет соответствовать разрешению рабочего стола.
Если изображение искажено, это проблему можно решить посредством обновления драйвера адаптера или же изменением разрешения монитора. Правда, при это могут возникнуть чёрные полосы по краям экрана (вертикально – справа и слева, сверху и снизу такого, как правило, не происходит). Если вернуть настройки к нормальному для этого компьютера состоянию, эти полосы пропадут.
Если вы желаете отключить масштабирование ярлыка той или иной программы в меню «Пуск», это сделать несложно: кликните правой кнопкой мыши по ярлыку этого приложения (по которому обычно кликаете левой, когда запускаете программу) и в меню, которое при этом появится, выберите пункт «Свойства», а в открывшемся окне перейдите на вкладку «Совместимость». Там вы увидите список параметров, среди которых будет пункт «Отключить масштабирование изображения при высоком разрешении экрана». Поставьте галочку в этом пункте, нажмите кнопку «Применить», а затем – «ОК».
Масштабирование можно не только отключать, но и изменять в некоторых программах. Это касается, например, браузера Firefox. Правда, этот браузер пользуется теми настройками масштабирования текста, которые указаны для монитора, так что никаких особых проблем в этом плане возникать не должно – и всё же некоторых пользователей установленный программой масштаб может не устраивать. В этом случае необходимо набрать в строке адреса about:config и нажать «Ввод». Браузер немедленно вас предупредит, что изменение настроек, в которые вы намереваетесь вторгнуться, может ухудшить работу программы, и посоветует менять что-либо лишь в том случае, если абсолютно в этом уверены. Пообещайте программе, что будете предельно осторожны, нажав кнопку с такой надписью (при желании можете предварительно снять галочку в пункте «Показывать это предупреждение в следующий раз»). В открывшемся списке параметров найдите строчку «layout.css.devPixelsPerPx» (список огромный, но всё там расположено в алфавитном порядке – так что найти не так уж сложно) и меняйте значение этого параметра, увеличивая или уменьшая его по вашему желанию.
Для отключения масштабирования на мониторе следует использовать его собственное меню, которое с операционной системой не связано. Выставляя в нём настройки, необходимо сохранять соотношение сторон (как правило, оно бывает 16:9 или 16:10).
Наконец, некоторые проблемы с масштабированием в той или иной программе могут быть связаны с некими неполадками. Например, во многих программах можно увеличивать или уменьшать масштаб, зажав клавишу CTRL и вращая колесо мыши вперёд или назад. Если вращение колеса вместо пролистывания даёт такой эффект – значит, мы имеем дело с запавшей клавишей CTRL, и именно с этим надо разобраться.
Всё чаще на форумах можно прочесть о том, что автоматическая настройка изображения в ОС Windows приводит к визуальному дискомфорту – слишком мелкий шрифт затрудняет чтение, крупные ярлыки занимают половину экрана, а сообщения в диалоговых окнах и другие элементы меню не умещаются в отведённое им место. При особо экстремальном сочетании настроек работа вообще становится невозможной сразу после включения. Благо, всё довольно легко настроить, причём для каждого пользователя по отдельности.
Операционные системы Windows Vista, 7 и 8 используют автоматическую подстройку параметров изображения по записи EDID монитора и с учётом драйвера видеокарты. При загрузке выбирается не только «родное» разрешение – изменяется также степень масштабирования текста и графических элементов меню. Часто это оказывается медвежьей услугой, но проблема решается за пару минут.
При разработке дизайна ОС и программ размеры всех элементов пользовательского интерфейса выбираются с учётом типичных значений пиксельной плотности. У большинства мониторов не так давно она составляла 96 DPI. В современных матрицах данный параметр существенно отличается. Например, ноутбуки ASUS ZENBOOK Prime и Sony VAIO SVD при диагонали экрана 11,6″ имеют разрешение 1920×1080. Соответственно, линейная плотность расположения пикселей составляет 190 DPI.
Обратная ситуация в том случае, если скромное разрешение используется на неадекватно большом для него экране. В продаже до сих пор встречаются такие мониторы, как LG Flatron E1910, Acer V193 и подобные им. Разрешение 1280×1024 при диагонали 19″ и соотношении сторон 4:3 даёт низкую пиксельную плотность – 84 DPI.
Подобрать подходящие параметры самостоятельно можно с помощью расширенных настроек изображения. Они находятся в панели управления в разделе «Оформление и персонализация». Подраздел «Экран» сразу открывается на вкладке «удобство чтения с экрана». По умолчанию предлагается нехитрый выбор масштаба текста: мелкий (100%), средний (125%) и крупный (150%). Чтобы подстроить его более тонко, зайдите на последнюю вкладку «Другой размер шрифта» – там его можно будет выбрать в диапазоне от 100 до 500% с шагом 1% (подберётся ближайшее возможное значение).
При выборе более 200% на большинстве экранов всё становится настолько крупным, что часто не удастся даже вновь вызывать это меню. Если вы допустили ошибку и не можете исправить её прежним способом, вызовите меню настройки напрямую. Для этого нажмите «Пуск» и в строке «Найти программы и файлы» введите «dpiscaling» (без кавычек) и нажмите {Enter}. То же самое можно сделать через команду «выполнить», вызываемую по нажатию {Win}+{R}.
Интерфейс некоторых программ ограниченно совместим с режимом масштабирования. Для них его лучше отключить заранее. Сделать это можно избирательно для конкретных программ. В первую очередь это касается систем автоматизированного проектирования, браузеров (во время просмотра флэш-видео) и большинства игр. Для этого щёлкните на ярлыке правой клавишей мыши и в появившемся контекстном меню выберите «Свойства». Перейдите на вкладку «Совместимость» и установите флажок последнего параметра – «Отключить масштабирование изображения при высоком разрешении экрана».
Обратите внимание, что после обновления версии программы флаг этой опции будет сброшен.
Всё чаще на форумах можно прочесть о том, что автоматическая настройка изображения в ОС Windows приводит к визуальному дискомфорту – слишком мелкий шрифт затрудняет чтение, крупные ярлыки занимают половину экрана, а сообщения в диалоговых окнах и другие элементы меню не умещаются в отведённое им место. При особо экстремальном сочетании настроек работа вообще становится невозможной сразу после включения. Благо, всё довольно легко настроить, причём для каждого пользователя по отдельности.
Операционные системы Windows Vista, 7 и 8 используют автоматическую подстройку параметров изображения по записи EDID монитора и с учётом драйвера видеокарты. При загрузке выбирается не только «родное» разрешение – изменяется также степень масштабирования текста и графических элементов меню. Часто это оказывается медвежьей услугой, но проблема решается за пару минут.
При разработке дизайна ОС и программ размеры всех элементов пользовательского интерфейса выбираются с учётом типичных значений пиксельной плотности. У большинства мониторов не так давно она составляла 96 DPI. В современных матрицах данный параметр существенно отличается. Например, ноутбуки ASUS ZENBOOK Prime и Sony VAIO SVD при диагонали экрана 11,6″ имеют разрешение 1920×1080. Соответственно, линейная плотность расположения пикселей составляет 190 DPI.
Обратная ситуация в том случае, если скромное разрешение используется на неадекватно большом для него экране. В продаже до сих пор встречаются такие мониторы, как LG Flatron E1910, Acer V193 и подобные им. Разрешение 1280×1024 при диагонали 19″ и соотношении сторон 4:3 даёт низкую пиксельную плотность – 84 DPI.
Подобрать подходящие параметры самостоятельно можно с помощью расширенных настроек изображения. Они находятся в панели управления в разделе «Оформление и персонализация». Подраздел «Экран» сразу открывается на вкладке «удобство чтения с экрана». По умолчанию предлагается нехитрый выбор масштаба текста: мелкий (100%), средний (125%) и крупный (150%). Чтобы подстроить его более тонко, зайдите на последнюю вкладку «Другой размер шрифта» – там его можно будет выбрать в диапазоне от 100 до 500% с шагом 1% (подберётся ближайшее возможное значение).
При выборе более 200% на большинстве экранов всё становится настолько крупным, что часто не удастся даже вновь вызывать это меню. Если вы допустили ошибку и не можете исправить её прежним способом, вызовите меню настройки напрямую. Для этого нажмите «Пуск» и в строке «Найти программы и файлы» введите «dpiscaling» (без кавычек) и нажмите {Enter}. То же самое можно сделать через команду «выполнить», вызываемую по нажатию {Win}+{R}.
Интерфейс некоторых программ ограниченно совместим с режимом масштабирования. Для них его лучше отключить заранее. Сделать это можно избирательно для конкретных программ. В первую очередь это касается систем автоматизированного проектирования, браузеров (во время просмотра флэш-видео) и большинства игр. Для этого щёлкните на ярлыке правой клавишей мыши и в появившемся контекстном меню выберите «Свойства». Перейдите на вкладку «Совместимость» и установите флажок последнего параметра – «Отключить масштабирование изображения при высоком разрешении экрана».
Обратите внимание, что после обновления версии программы флаг этой опции будет сброшен.
Windows, начиная с Vista, предоставляет два механизма для адаптации приложений к мониторам с высокой плотностью пикселей (точек на дюйм, DPI): увеличенные системные шрифты и полномасштабное увеличение окон. К сожалению, попытка заставить некоторые ваши приложения работать в каком либо из режимов может оказаться безуспешной, благодаря сочетанию нерадивых разработчиков и плохих решений принятых Microsoft.
Эта страница предназначена для того, чтобы помочь пользователям понять и исправить, возможные проблемы при настройке высоких значений DPI. Пожалуйста, обратите внимание что мы рассмотрим только традиционные приложения Windows, не Windows Store («Metro», «Modern UI») приложения. Последние используют новый API WinRT, который обеспечивает собственный механизм масштабирования.
Чтобы исправить ситуацию, Microsoft решила, что неплохо встроить какой-нибудь метод масштабирование в Windows. Один из двух методов описанных ниже (Windows XP или Vista), применяется когда пользователь устанавливает DPI со значением выше чем стандартные 96 точек на дюйм. Оба метода пытаются увеличить размер элементов изображения.
Все остальные элементы приложений по-прежнему отображаются в масштабе 1:1. Единственной разницей в их внешнем виде является то, что любой текст и некоторые элементы GUI, выводимые с помощью системных функций, вдруг становиться больше. Например, текст на кнопках. Это вызывает очевидные проблемы которые мы обсудим чуть позже.
Разница в том, что приложения, которые могут правильно использовать высокие значения DPI, должны сообщить об этом Windows. Такие приложения должны установить новый DPI-Aware флаг, либо путем вызова функции Win32 API «SetProcessDPIAware», или, предпочтительно, путем встраивания манифеста с флагом dpiAware. А вот если у приложения отсутствует DPI-Aware флаг, Windows ведет себя по другому, сначала она формирует внутреннее отображение в масштабе 96 точек на дюйм (эмулируя для приложения DPI равный 96) , а затем, масштабирует полученное изображение в соответствие с текущими настройками DPI перед выводом на экран.
Это было бы фантастическим метод масштабирования если бы все наши мониторы имели плотность пикселей последних аппаратов iPhones (326 точек на дюйм). К сожалению это не так. Окна приложений масштабированные таким образом выглядят чересчур размыто, при популярном разрешении 120 точек на дюйм (@homm это не разрешение, кстати). Поэтому, Microsoft по умолчанию отключает DPI виртуализацию, если вы выберете плотность пикселей меньше или равную 120 DPI.
В раскрывающимся списке можно выбрать нужную настройку DPI в процентном соотношении, где 100% соответствует 96 DPI, 125% - как на скриншоте, соответствует 120 точкам на дюйм (можно более точно записать значение вручную)
. До Windows 8 фактическое значение DPI («пикселей на дюйм») отображалось рядом с размером системного шрифта. Windows 8, по непонятным причинам, не показывает значение DPI, так что вы должны рассчитать его самостоятельно.
Также вы можете приложить линейку (у которой есть шкала в дюймах) к экрану, и пытаться совместить маркировку на ней с маркировкой на экране, изменяя значение в раскрывающимся списке. Флажок, обведенный красным внизу, определяет, следует ли использовать только масштабирование в стиле Windows XP, или также новый способ DPI виртуализации. Если флажок не отмечен, как на скриншоте, то DPI виртуализация включена.
Декламация. Это диалоговое окно пример интерфейса не дружественного к пользователю. На первый взгляд кажется, что это флажок для отключения масштабирования в стиле Windows XP. Но этот метод масштабирования (который только увеличивает системные шрифты и другие элементы пользовательского интерфейса системы - масштабирование Windows XP) всегда включается при выборе высокого значения DPI. На самом деле этот флажок управляет, будет ли этот метод единственным (Использовать только масштабы в стиле Windows XP) , или также будет применен метод «DPI виртуализации» для приложений, которые не имеют DPI-Aware флага. Так что этот флажок не контролирует метод масштабирования указанный в его название, а контролирует другой метод масштабирования, нигде не упомянутый - и позволяет использовать новый метод, когда флажок снят!
Ошибка в Windows 8. В дополнение к этому, в Windows 8 это диалоговое окно с ошибкой. Как правило, все работает как и в Windows 7, но состояние флажка не сохраняется на значениях DPI 150% и выше. Когда вы устанавливаете этот флажок, «DPI виртуализация» правильно отключается. Тем не менее, сам флажок остается не отмеченным, когда вы в следующий раз открываете этот диалог.
Windows 8.1 позволяет использовать несколько мониторов с разным значением DPI. Однако эта функция, также заставляет использовать «DPI виртуализацию» для традиционных приложений, которые перемещаются между мониторами с разными значениями DPI. Чтобы этого избежать, можно отключить в настройках «DPI масштабирование», используя новую опцию «Я хочу выбрать один масштаб для всех дисплеев».
Также Windows 8.1 добавляет специальный переключатель для настройки 200% и новый API, чтобы разработчики могли выборочно отключать «DPI виртуализацию».
Если вы на самом деле создали пользовательскую тему рабочего стола и хотите сохранить её, вам придется самостоятельно адаптировать шрифты к новым настройкам DPI. Однако, Windows имеет раздражающую привычку «услужливо» создавать пользовательские темы без вашего ведома, по какой-либо причине. Так что, если вы никогда не создавали пользовательскую тему рабочего стола просто удалите её и вернитесь к стандартной теме.
В Windows 7/8, откройте Панель управления, выберите «Оформление и персонализация», а затем «Персонализация». Если вы видите выбранную запись в строке «Мои темы», это означает, что ОС Windows использует тему пользователя, системные шрифты которой Windows не будет масштабировать. Выберите стандартную тему, например, первую запись в разделе «Темы Aero» (Windows 7) или «Windows» «Темы по умолчанию» (Windows 8) и удалите нежелательные записи в разделе «Мои темы». Теперь, все системные шрифты должны отображаться правильно.
Такие приложения требуют нового метод масштабирования «виртуализации DPI», к сожалению, это часто делает интерфейс размытым. В противном случае вы столкнетесь с проблемами начиная, от обрезания текста до перекрытия элементов контроля, иногда, делая GUI полностью непригодным (к счастью, это, случается редко). За эти годы я собрал несколько образцов скриншотов не корректных приложений.
Пример приложения, работает только при DPI равном 96
Разрешение 150% (144 DPI)
Пример такого приложения и разрешение 150% (144 DPI)
Приложения не приспособленные к изменению DPI, но имеющие DPI-Aware флаг - это еще хуже чем полностью игнорирование значения DPI. В примерах вы найдете GUI приложений, хорошо масштабируемых вплоть до 120 DPI, но не выше, или приложений JavaFX . Тут мы уже ничего сделать не можем, т.к. у нас нет возможности заставить Windows использовать DPI виртуализацию, для таких программ. После того как DPI-Aware флаг установлен, приложение должно масштабировать себя самостоятельно. Мы можем только «пилить» разработчиков исправить их продукт - или использовать что-то другое.
Напоминаем, что в Windows 8.1 уже нет возможности выбора в этом вопросе. Если вы работаете при разрешении в 120 точек на дюйм (125%), каждая программа будет вынуждена использовать масштабирование в стиле Windows XP, a если вы работаете с более высоким разрешением, каждая программа, которая не является DPI-Aware, будет использовать по умолчанию «DPI виртуализацию».
32-разрядные приложения - Это просто: щелкните правой кнопкой мыши на исполняемом файле в Проводнике Windows, выберите диалоговое окно «Свойства», перейдите на вкладку «Совместимость» и установите флажок «Отключить масштабирование изображения при высоком разрешении экрана». Вот и все, в Windows 8.1 это также работает для 64-битных приложений.
64-разрядные приложения - Без всякой видимой причины, возможно чтобы позлить пользователей 64-битных приложений, в Windows 8 и более ранних, упомянутый выше флажок, для 64-разрядных приложений отключен, хотя сам вариант вполне функционален, если внести изменения непосредственно реестр! Так что, запустите редактор реестра и перейдите к этому ключу:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Теперь добавьте строковое значение (REG_SZ), чье имя является полным путем к исполняемому файлу приложения и значением которого является HIGHDPIAWARE. Я рекомендую, чтобы вы сначала изменили несколько 32-битных приложений, как описано выше, чтобы вы могли увидеть некоторые примеры значений в этом ключе реестра.
Мы рассмотрели, как можно использовать настройки DPI на Windows Vista и более поздних версиях. И если вы когда-нибудь задумывались, для чего предназначена опция совместимости - «Отключить масштабирование изображения при высоком разрешении экрана». И почему она ничего не делает на вашей системе, теперь вы знаете: она эффективна, только если у вас включена общесистемная опция «DPI виртуализации» и только для приложений, которые не устанавливают DPI-Aware флаг должным образом, но при этом корректно используют масштабирование в стиле Windows XP.
Функция масштабирования существует для того, чтобы пользователь ПК мог более детально рассмотреть тот или иной объект или его часть. В случае если у монитора достаточно большая диагональ, потребность в данной функции пропадает.