Привет!
Интересует, как преобразуется процентный показатель масштаба в браузере в конечный, и как влияет DPI и наоборот.
На примере Винды:
96DPI=100% масштаб
По идее, юзер контролирует масштаб в процентах, и исходя из процентов рассчитывается DPI с помощью округления. Плотность точек только целочисленное значение имеет.
Например, вы установили масштаб 108%. 1.08*96=103.68→104 — конечное значение
Реальное же процентное значение в системе будет 104/96≈1.08(3)
Но если взять браузеры, там мы тоже можем устанавливать различные значения в процентах. Как они переводятся в плотность точек? По такому же методу, дающему целочисленное значение плотности, но теоретически с некоторой погрешностью, или же по методу без погрешности, но отличному от метода системы?
И как реализуется взаимодействие между системным и браузерным масштабом?
Например, установлен масштаб 133%, по сути это будет округ(96*1.33)/96=1.3(3)
Чтобы привести масштаб к 100%, надо установить масштаб 1/1.(3)=0.75, т.е. 75%.
Если же браузер берёт целочисленное значение процентов(скорее всего нет), т.е. масштаб 1.33, то для получения 100% масштаба нужен масштаб уже 0,751879699, который задать невозможно, что приведёт к очень мелким, но в ряде случаев критичным искажениям...
Вот, например, для того, чтобы получить логическое разрешение монитора из х1080 → х768, нужно установить масштаб 1080/768=1,40625
Что лучше сделать в браузере для этого значения? Оставить 140? Или установить 141%, который, при переводе в целый DPI и делёный на 96, получит ровно 1,40625?
Практическое применение может не совсем понятное, но вот пример:
Если изображение хотя бы чуть сжимается, оно может сильно пострадать в качестве. При небольшом увеличении это менее вероятно.
Поэтому, если программа считает, что плотность точек 1.33*96=127.68, то масштаб 75% даст плотность 127.68*0.75=95.76 . В итоге изображения будут сжатыми. Если масштаб 134%, то плотность будет либо 128.64, либо 129. При масштабе 75%, плотность будет 96.48 или 96.75(97). Искажения изображений небольшие будут, но это перестраховка. Но если 133% приводит именно к 1.33(3) по сути, то можно смело ставить этот масштаб. Лучше уж небольшие искажения увеличения, чем уменьшения, но если можно вообще от них избавиться, то почему нет?