CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 09.08.20 07:16
Оценка: 4 (1)
Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов. Поработав за компом с масштабированием 150%, я понял: хреново работает. Про 4K с 200% даже думать страшно. Шрифты-то масштабируются автоматически (если для них выставлены размеры в пунктах), а вот картинки остаются в родном размере в пикселях, всё мелко. Возник вопрос: а как это дело можно улучшить? Положим, сами картинки-то в разных размерах переделать несложно, но как заставить справочную систему отображать нужный вариант изображения в зависимости от текущего масштаба? Распространять 3 раздельных CHM-файла как-то не тянет.

Насколько я понял, в современном вебе для этого используются CSS-правила @media. Вот только движок IE7, на котором работает CHM, про эти правила знать не знает, так что эта идея отпала. Также я рассматривал возможность внедрить JS, который будет динамически высчитывать масштаб и подменять картинки. PoC сработал нормально, но я смутно помню, что JS в CHM считается злом (то ли на каких-то системах или при каких-то настройках он блокируется, то ли ещё что-то в этом роде; точно знаю только, что у пользователей древнего Макстона скрипты в CHM вызывали лишние запросы подтверждения от какой-то системы безопасности). В общем, по возможности хотелось бы обойтись без JS. Нашёл также интересный хак, позволяющий внедрить JS-код прямо внутрь CSS, но думается мне, это принципиально не отличается от честного выполнения JS из кода страницы.

Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: CHM и HiDPI — как?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 09.08.20 07:38
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?

Я сварщик фронтендер не настоящий, поэтому, быть может, скажу глупость...
А что если:
— всегда класть картинки с максимальным разрешением
— указывать размеры изображения не в пикселах, а например, относительно ширины окна

Или я не правильно понял проблему?
Re: CHM и HiDPI — как?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 09.08.20 07:43
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Имеется справка в CHM-формате.


Открывается okularʼом с управлением масштабированием. Есть сборка под Windows.
Ещё есть приложение для Хрома.
The God is real, unless declared integer.
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 09.08.20 08:47
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

CF>>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?

МР>Я сварщик фронтендер не настоящий, поэтому, быть может, скажу глупость...
МР>А что если:
МР>- всегда класть картинки с максимальным разрешением
МР>- указывать размеры изображения не в пикселах, а например, относительно ширины окна

Сейчас размеры картинок вообще не указываются, и картинки просто вставляются в "базовом" размере. Если начать вставлять туда относительные размеры, то вылезает сразу несколько проблем:
1. Если указывать размеры относительно окна, то когда пользователь растягивает окно, все картинки будут растягиваться вместе с ним (причём непропорционально).
2. Если засунуть их, скажем, в DIV фиксированного размера (равного базовому размеру картинки) и указывать размер картинки в процентах от этого блока, то DIV продолжит занимать место, и вокруг картинки останется пустое поле.
3. Независимо от выбранного способа, перемасштабирование картинки даёт мыло, которого хотелось бы избежать. Особенно с учётом того, что масштаб 100% — это всё-таки пока что мейнстрим, и он должен быть в хорошем качестве. Если 100% превратить в 200 ещё можно было бы дублированием пикселей, избежав мыла (и то ещё вопрос, как движок IE7 будет осуществлять масштабирование), то нецелые масштабы и тем более уменьшение размеров неизбежно приводят к ухудшению качества. Поскольку это не фотографии, а скриншоты с чёткими линиями, значками и текстом, то разница очень ощутима.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 09.08.20 08:50
Оценка:
Здравствуйте, netch80, Вы писали:

N>Открывается okularʼом с управлением масштабированием. Есть сборка под Windows.

N>Ещё есть приложение для Хрома.

К сожалению, этот вариант не подходит. Справка пишется для сторонней программы и распространяется для произвольного круга лиц. Заставить всех пересесть на альтернативный просмотрщик невозможно. Кроме того, сама программа вызывает справку с использованием HTMLHelp API, что приводит к использованию стандартного системного движка.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: CHM и HiDPI — как?
От: Alexander G Украина  
Дата: 09.08.20 10:29
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?


Вектор туда кинуть?

IE7 не понимает .svg (уточнить), но понимает какой-то VML Наверное, есть конвертеры.

Получить скриншот в векторе сложно, но можно.

Можно попытаться подменив рисовалку.
В Qt это через QSvgGenerator, в обычном GDI это через метафайлы, зайдёт это всё только без двойной буферизации.
Или -- распознать текст и линии OCR.

PS: Я теоретик.
Русский военный корабль идёт ко дну!
Отредактировано 09.08.2020 10:33 Alexander G . Предыдущая версия .
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 09.08.20 22:06
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Вектор туда кинуть?


AG>IE7 не понимает .svg (уточнить), но понимает какой-то VML Наверное, есть конвертеры.


Скриншот в векторе — идея, конечно, нестандартная…
Впрочем, из любопытства посмотрел, что с ними можно сделать. Но ни SVG, ни VML движок CHM принимать не захотел, показывает заглушку несуществующей картинки. (Сами файлы в CHM, разумеется, присутствуют.)
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: CHM и HiDPI — как?
От: Mystic Artifact  
Дата: 10.08.20 04:08
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Насколько я понял, в современном вебе для этого используются CSS-правила @media.

В современном веб px это reference pixel, который в идеале 1/96 дюйма, но реальное соотношение может прыгать, в зависимости от реализации и сколько ошибок насобирать. Поэтому, размеры в пикселах не идеальны, но во многих случаев этого достаточно, и никакие медиа-квери не нужны и они будут физически (в дюймах) более-менее одинаковы.
@media нужны для более забористых случаев, но в значительной части используются для адаптации контента под конкретные размеры экранов. А что касается картинок, то, что бы их заменять на другие, с большим разрешением — нужно прежде всего их иметь.

Можно попробовать задавать размеры картинок в других единицах css, вплоть до процентов (например оттолкнуться от шрифта в em). Я конкретно уже про IE7 не подскажу. Наверное надо добиться, что бы в нем это сначала приемлимо заработало, а потом уже это в chm втаскивать.
Отредактировано 10.08.2020 4:10 Mystic Artifact . Предыдущая версия .
Re: CHM и HiDPI — как?
От: qaz77  
Дата: 10.08.20 07:42
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов.


Решал подобную задачу, но не для chm, а для интегрированного в приложение WebControl.
Возможно, что этот способ и для htmlhelp сработает.

В реестре можно задать некоторое количество параметров IE в разрезе имени exe:
HKLM или HKCU \Software\Microsoft\Internet Explorer\Main\FeatureControl\<конкретная фича>

За DPI awarness отвечает фича FEATURE_96DPI_PIXEL. Если такого ключа нет, то его надо создать.
Далее создается параметр DWORD с именем MyApp.exe и значением 1.
Re: CHM и HiDPI — как?
От: VladCore  
Дата: 10.08.20 07:48
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов. Поработав за компом с масштабированием 150%, я понял: хреново работает. Про 4K с 200% даже думать страшно. Шрифты-то масштабируются автоматически (если для них выставлены размеры в пунктах), а вот картинки остаются в родном размере в пикселях, всё мелко. Возник вопрос: а как это дело можно улучшить? Положим, сами картинки-то в разных размерах переделать несложно, но как заставить справочную систему отображать нужный вариант изображения в зависимости от текущего масштаба? Распространять 3 раздельных CHM-файла как-то не тянет.


CF>Насколько я понял, в современном вебе для этого используются CSS-правила @media. Вот только движок IE7, на котором работает CHM, про эти правила знать не знает, так что эта идея отпала. Также я рассматривал возможность внедрить JS, который будет динамически высчитывать масштаб и подменять картинки. PoC сработал нормально, но я смутно помню, что JS в CHM считается злом (то ли на каких-то системах или при каких-то настройках он блокируется, то ли ещё что-то в этом роде; точно знаю только, что у пользователей древнего Макстона скрипты в CHM вызывали лишние запросы подтверждения от какой-то системы безопасности). В общем, по возможности хотелось бы обойтись без JS. Нашёл также интересный хак, позволяющий внедрить JS-код прямо внутрь CSS, но думается мне, это принципиально не отличается от честного выполнения JS из кода страницы.


CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?


есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.
Re: CHM и HiDPI — как?
От: wildwind Россия  
Дата: 10.08.20 08:49
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?


Конечно знает. Перейти на более современные форматы справки и способы ее отображения. Например, положиться на то, что у пользователя установлен современный браузер, и открывать справку в нем.
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 11:44
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

CF>>Насколько я понял, в современном вебе для этого используются CSS-правила @media.

MA> В современном веб px это reference pixel, который в идеале 1/96 дюйма, но реальное соотношение может прыгать, в зависимости от реализации и сколько ошибок насобирать. Поэтому, размеры в пикселах не идеальны, но во многих случаев этого достаточно, и никакие медиа-квери не нужны и они будут физически (в дюймах) более-менее одинаковы.
MA> @media нужны для более забористых случаев, но в значительной части используются для адаптации контента под конкретные размеры экранов. А что касается картинок, то, что бы их заменять на другие, с большим разрешением — нужно прежде всего их иметь.

Заиметь картинки как раз не проблема. Проблема — объяснить браузеру, что при таком-то масштабе я хотел бы использовать такую картинку, при сяком-то — другую. Я в вебе сильно плаваю (особенно в современном), но, вроде, кроме @media ничем другим такого не добиться. Ну и скриптами ещё, само собой. Ещё нагуглился img srcset, но это ещё более молодая технология, про IE7 тут и заикаться нечего.

MA> Можно попробовать задавать размеры картинок в других единицах css, вплоть до процентов (например оттолкнуться от шрифта в em). Я конкретно уже про IE7 не подскажу. Наверное надо добиться, что бы в нем это сначала приемлимо заработало, а потом уже это в chm втаскивать.


Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 11:47
Оценка:
Здравствуйте, qaz77, Вы писали:

Q>Решал подобную задачу, но не для chm, а для интегрированного в приложение WebControl.

Q>Возможно, что этот способ и для htmlhelp сработает.

Q>В реестре можно задать некоторое количество параметров IE в разрезе имени exe:

Q>HKLM или HKCU \Software\Microsoft\Internet Explorer\Main\FeatureControl\<конкретная фича>

Q>За DPI awarness отвечает фича FEATURE_96DPI_PIXEL. Если такого ключа нет, то его надо создать.

Q>Далее создается параметр DWORD с именем MyApp.exe и значением 1.

Любое изменение системных настроек тут не катит, справка идёт отдельно, без инсталлятора. Требовать от пользователей ручками что-то там настраивать в реестре — нехорошо. Да тому же влияющее не конкретно на справку, а на саму чужую программу, эту справку использующую.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 11:51
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Конечно знает. Перейти на более современные форматы справки и способы ее отображения. Например, положиться на то, что у пользователя установлен современный браузер, и открывать справку в нем.


Программа сторонняя, выбор формата справки осуществляется не мной.
(И, кстати, как пользователь, я отношусь с громадным отвращением к браузерной справке. Очень неудобно по множеству причин.)
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 11:53
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.


Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: CHM и HiDPI — как?
От: VladCore  
Дата: 10.08.20 12:39
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

VC>>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.


CF>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.


ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема

и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 13:09
Оценка: +1 -1
Здравствуйте, VladCore, Вы писали:

VC>>>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.


CF>>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.


VC>ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема


VC>и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?


DPI я предполагаю выставленным под нужды пользователя. Для меня это внешний рид-онли параметр, который меняется независимо от моих желаний, и мне надо под него подстраиваться.
Под модификацией настроек я понимаю всевозможные сценарии, где справка распространяется вместе с ридми, в котором говорится: "чтобы нормально читать нашу справку, зайдите в реестр и твикните такие-то ключили / откройте такой-то диалог и выставьте такие-то галочки / отредактируйте сякой-то системный INI-файлик / и т. д."
Из сообщения про "есть две настройки HiDPI" я сделал вывод, что в одном из этих режимов, возможно, автомасштабирование в CHM будет работать лучше, и мне предлагается заставить пользователя переключить свою систему в этот режим. Отсюда мой ответ про недопустимость подобных манипуляций. Если понял неправильно, то прошу разъяснить, что именно мне предлагалось сделать. Или это была просто ремарка о текущем положении дел, без каких-либо указаний на то, что с этим можно сделать?

Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: CHM и HiDPI — как?
От: Mystic Artifact  
Дата: 10.08.20 13:19
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Заиметь картинки как раз не проблема. Проблема — объяснить браузеру, что при таком-то масштабе я хотел бы использовать такую картинку, при сяком-то — другую. Я в вебе сильно плаваю (особенно в современном), но, вроде, кроме @media ничем другим такого не добиться. Ну и скриптами ещё, само собой. Ещё нагуглился img srcset, но это ещё более молодая технология, про IE7 тут и заикаться нечего.

Я помню что, что можно было что-то выиграть от meta viewport. Поведение может поменяться. (Правда саму задачу не решит.)

CF>Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится.

Прям сильно мыльная?

Насчет картинок тут проверь еще и сами картинки, какое у них указано разрешение, если это есть в их формате. Вдруг там ерунда указана.

Ну а так — поищи готовые полифилы для медиа квери.

Ну или добавь скрипт который на div разместит шрифт/букву с базовым размером который ты знаешь. Скриптом спрашиваешь размер этого div в пикселах. Тут по идее ты и сможешь вычислить масштаб и следовательно перейти на другие img, которые в ином качестве.

А еще лучше — поместить "референсную картинку" в див, и див с текстом который приблизительно равен ширине этой картинки. Ну и опять спрашиваешь браузер о размерах и получаешь отношение — и соотв. из отношения можно уже переключить на другой набор картинок.

Ну это просто идея, надо пробовать на практике на IE7 и в chm.

Add: Последний вариант возможно будет даже получше полифилов — не прийдется разбираться как они сделаны и делают ли то, что тебе нужно.
Отредактировано 10.08.2020 13:31 Mystic Artifact . Предыдущая версия . Еще …
Отредактировано 10.08.2020 13:29 Mystic Artifact . Предыдущая версия .
Re[5]: CHM и HiDPI — как?
От: alexzzzz  
Дата: 10.08.20 13:50
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.


Я сейчас поменял старый 24" 1920x1080 на 27" 4k и даже при 200% масштабировании в Windows наблюдаю какое-то мыло в старых приложениях. Такое, что при переключении масштабирования в 175% оно вроде увеличивается, но уже не так принципиально, чтобы использовать 200% вместо 175%.
Отредактировано 10.08.2020 16:40 alexzzzz . Предыдущая версия .
Re[5]: CHM и HiDPI — как?
От: VladCore  
Дата: 10.08.20 14:09
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла


CF>>>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.


VC>>ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема


VC>>и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?


CF>DPI я предполагаю выставленным под нужды пользователя. Для меня это внешний рид-онли параметр, который меняется независимо от моих желаний, и мне надо под него подстраиваться.

CF>Под модификацией настроек я понимаю всевозможные сценарии, где справка распространяется вместе с ридми, в котором говорится: "чтобы нормально читать нашу справку, зайдите в реестр и твикните такие-то ключили / откройте такой-то диалог и выставьте такие-то галочки / отредактируйте сякой-то системный INI-файлик / и т. д."
CF>Из сообщения про "есть две настройки HiDPI" я сделал вывод, что в одном из этих режимов, возможно, автомасштабирование в CHM будет работать лучше, и мне предлагается заставить пользователя переключить свою систему в этот режим. Отсюда мой ответ про недопустимость подобных манипуляций. Если понял неправильно, то прошу разъяснить, что именно мне предлагалось сделать. Или это была просто ремарка о текущем положении дел, без каких-либо указаний на то, что с этим можно сделать?

CF>Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.


и кому нужны твой скепсис и фантазии про readme?

ты нашел обе опции где HiDPI задается? Найдеш поставь +. И сюда скринь скриншоты с мылом и без. бо я уже не первый раз вижу как народ в 10ке не может включить HiDPI для легаси
Re[6]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 15:18
Оценка: -1
Здравствуйте, VladCore, Вы писали:

VC>и кому нужны твой скепсис и фантазии про readme?


VC>ты нашел обе опции где HiDPI задается? Найдеш поставь +. И сюда скринь скриншоты с мылом и без. бо я уже не первый раз вижу как народ в 10ке не может включить HiDPI для легаси


Я их и не пытался искать. При чём тут они вообще? Опции выставляет пользователь. А я — разработчик. И мне надо под эти опции подстроиться. Чтобы произвольный пользователь скачал созданный мной CHM-файл, ткнул на него, и справка открылась, показав красивые картинки, рассчитанные на тот DPI, что сейчас выставлен у этого пользователя.

Предположим даже, что я нашёл обе эти опции и поигрался с ними. Что мне с ними предполагается делать-то? Или CHM умеет внутрь себя как-то эти опции внедрять? Или выставленные на моём компе опции телепортируются на комп пользователя, который мою справку скачает? К чему вообще была эта фраза про два варианта HiDPI? Как она призвана помочь мне в решении задачи создания справки, корректно работающей в разных режимах масштабирования? При чём тут легаси-приложения? Ни целевое приложение, под которое идёт справка, ни оболочка hh.exe, где эта справка открывается, легаси-приложениями с точки зрения системы не являются.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 15:29
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

CF>>Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится.

MA> Прям сильно мыльная?

Ощутимо. Сейчас, правда, во всех технологиях идёт какой-то тренд на мыльность, везде применяются какие-то размытые шрифты, всякие векторные иконки, которые ни в одном разрешении не рисуются чёткими линиями… По сравнению с этими интерфейсами, может, и нормально. Но я привык к большей чёткости изображений, и то, что получается при автомасштабировании растра, меня не устраивает.

MA> Насчет картинок тут проверь еще и сами картинки, какое у них указано разрешение, если это есть в их формате. Вдруг там ерунда указана.


Обычный PNG, там нет никаких разрешений. Есть размер холста в пикселях, в точном соответствии с которым рисунок и выводится на экран по умолчанию. Если в HTML/CSS указать для элемента IMG другой размер, то рисунок принудительно перемасштабируется под него и, разумеется, станет более размытым. Здесь хоть как крутись, по-другому просто не бывает. Либо чётко, но мелко, либо отмасштабированно, но размыто. Пока DPI не вырастет хотя бы на порядок, с этим ничего не поделать, вот и приходится заморачиваться с подстановкой разных картинок под разные разрешения (где это технически реализуемо).

MA> Ну а так — поищи готовые полифилы для медиа квери.


MA> Ну или добавь скрипт который на div разместит шрифт/букву с базовым размером который ты знаешь. Скриптом спрашиваешь размер этого div в пикселах. Тут по идее ты и сможешь вычислить масштаб и следовательно перейти на другие img, которые в ином качестве.


MA> А еще лучше — поместить "референсную картинку" в див, и див с текстом который приблизительно равен ширине этой картинки. Ну и опять спрашиваешь браузер о размерах и получаешь отношение — и соотв. из отношения можно уже переключить на другой набор картинок.


MA> Ну это просто идея, надо пробовать на практике на IE7 и в chm.


MA> Add: Последний вариант возможно будет даже получше полифилов — не прийдется разбираться как они сделаны и делают ли то, что тебе нужно.


Скриптами я давно уже сделал, без всяких полифиллов. В первом же сообщении об этом написано. Просто знаю пользователей, у которых скрипты в CHM в прошлом вызывали проблемы, поэтому хочется выяснить, существуют ли решения без применения скриптов.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: CHM и HiDPI — как?
От: wildwind Россия  
Дата: 10.08.20 17:51
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Программа сторонняя, выбор формата справки осуществляется не мной.


Ну, значит и мой совет не для тебя, а для автора программы. Хотя странно, почему заставить работать CHM на не поддерживающей его системе это твоя проблема.

CF>(И, кстати, как пользователь, я отношусь с громадным отвращением к браузерной справке. Очень неудобно по множеству причин.)


Это только один из вариантов.
Re[5]: CHM и HiDPI — как?
От: Mystic Artifact  
Дата: 10.08.20 18:31
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Скриптами я давно уже сделал, без всяких полифиллов. В первом же сообщении об этом написано. Просто знаю пользователей, у которых скрипты в CHM в прошлом вызывали проблемы, поэтому хочется выяснить, существуют ли решения без применения скриптов.


Ну да, и правда. Это меня занесло. )
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 10.08.20 18:56
Оценка:
Здравствуйте, wildwind, Вы писали:

CF>>Программа сторонняя, выбор формата справки осуществляется не мной.


W>Ну, значит и мой совет не для тебя, а для автора программы. Хотя странно, почему заставить работать CHM на не поддерживающей его системе это твоя проблема.


Почему "на не поддерживающей его системе"? CHM — стандартный формат, поддерживающийся на виндах вплоть до последней десятки. И нормальной замены ему что-то пока не видать.

Ну а относительно того, почему это моя проблема… Это не моя проблема, это моё желание. Хочу сделать пользователям лучше, такое вот странное желание.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: CHM и HiDPI — как?
От: Igore Россия  
Дата: 11.08.20 09:31
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?

Ну, я формат chm не знаю, в html я бы попытался выкрутиться через img sizes где у тебя будет несколько размеров.
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 11.08.20 11:28
Оценка:
Здравствуйте, Igore, Вы писали:

I>Ну, я формат chm не знаю, в html я бы попытался выкрутиться через img sizes где у тебя будет несколько размеров.


CHM — это фактически и есть HTML, но отображающийся в древнем IE7-движке.
За информацию спасибо, но, видимо, этот способ не сработает. В документации говорится, что адреса изображений вытаскиваются из srcset, а он в IE не поддерживается.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: CHM и HiDPI — как?
От: sfsoft Россия  
Дата: 12.08.20 09:37
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>CHM — это фактически и есть HTML, но отображающийся в древнем IE7-движке.


Не совсем так. Можно выбирать какой браузер пользовать. Но будут нюансы, Edge шрифты мылит...
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 12.08.20 10:19
Оценка:
Здравствуйте, sfsoft, Вы писали:

CF>>CHM — это фактически и есть HTML, но отображающийся в древнем IE7-движке.


S>Не совсем так. Можно выбирать какой браузер пользовать. Но будут нюансы, Edge шрифты мылит...


А можно поподробнее? Где эта настройка прячется? Самому обнаружить не удалось, гугл тоже не слишком торопится выдавать инфу…
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[5]: CHM и HiDPI — как?
От: sfsoft Россия  
Дата: 12.08.20 14:54
Оценка: 4 (1)
Я, к сожалению, не разбирался как именно это работает. Но вот авторы Help-N-Doc видимо разбирались, у них это выглядит так:



Настройка рабочая, т.к., повторюсь, edge мылил шрифты и я принудительно указал IE другой версии.
Отредактировано 12.08.2020 14:54 sfsoft . Предыдущая версия .
Re[6]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 14.08.20 13:31
Оценка:
Здравствуйте, sfsoft, Вы писали:

S>Я, к сожалению, не разбирался как именно это работает. Но вот авторы Help-N-Doc видимо разбирались, у них это выглядит так:


S>Image: helpndoc-rsdn.png


S>Настройка рабочая, т.к., повторюсь, edge мылил шрифты и я принудительно указал IE другой версии.


Из названия флага и дефолтного значения могу предположить, что они просто добавляют X-UA-Compatible в код. Кстати, если верить документации, IE=edge означает не браузер Edge, а последнюю доступную версию IE (типа "bleeding edge"). Но если вписать "IE=edge,chrome=1", то вроде как будет использоваться хромовский движок (если он доступен).

Спасибо за инфу, я не знал, что CHM позволяет использовать разные движки. Попробую поиграться в этом направлении. Правда, эксперименты пока дают какие-то странные результаты…
Кстати, особого мыла у себя не заметил. Возможно, какие-то настройки самого IE11 и/или Edge играют роль. Но буду иметь в виду, что оно возможно.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: CHM и HiDPI — как?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 14.08.20 18:49
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>картинки остаются в родном размере в пикселях, всё мелко.


А если сделать наоборот — подготовить картинки в заведомо большом разрешении, с максимально плавными контурами, и через типичный веб-прием "резиновой картинки" (max-width: 100%; width: auto; height: auto) показывать с уменьшением? На мониторах с мелкой точкой масштабирование вниз смотрится не так ужасно, как вверх без антиалиасинга.
Re: CHM и HiDPI — как?
От: Michael7 Россия  
Дата: 14.08.20 20:02
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Имеется справка в CHM-формате.

CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?

Может тупость скажу, но отказаться от CHM-формата и распространять просто в html, которым по сути CHM и является, не вариант?
Re[2]: CHM и HiDPI — как?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 14.08.20 20:08
Оценка:
Здравствуйте, Michael7, Вы писали:

M>отказаться от CHM-формата и распространять просто в html


И либо потерять функцию поиска, либо городить ее руками.
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 14.08.20 22:16
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А если сделать наоборот — подготовить картинки в заведомо большом разрешении, с максимально плавными контурами, и через типичный веб-прием "резиновой картинки" (max-width: 100%; width: auto; height: auto) показывать с уменьшением? На мониторах с мелкой точкой масштабирование вниз смотрится не так ужасно, как вверх без антиалиасинга.


Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить. Резиновые картинки, конечно, не катят, но попробую, что будет, если фиксированный половинный размер задать.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 14.08.20 22:20
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Может тупость скажу, но отказаться от CHM-формата и распространять просто в html, которым по сути CHM и является, не вариант?


Программа сторонняя, справка там либо HLP, либо CHM, другие не поддерживаются.
(Впрочем, в HTML я тоже выкладываю для удобства, но не в качестве замены CHM, а как дополнение. Чтобы была возможность дать в инете сразу ссылку на нужную статью, а не диктовать цепочку переходов.)
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: CHM и HiDPI — как?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 15.08.20 07:59
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить.


Попробуйте просто сделать картинку, которая будет нормально смотреться на 150-200 DPI, показать ее на обычной веб-страничке с MaxWidth 100%, и поуменьшать окно браузера. Я попробовал с крупными надписями на экране 17" со 128 DPI — при уменьшении смотрится не совсем красиво, но не страшно. На более высоких разрешениях будет еще лучше.
Re[3]: CHM и HiDPI — как?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 15.08.20 08:01
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Чтобы была возможность дать в инете сразу ссылку на нужную статью, а не диктовать цепочку переходов.


В CHM можно сразу открывать нужную страницу/раздел из командной строки:

hh file.chm:/page.htm#anchor
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 17.08.20 21:58
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

CF>>Чтобы была возможность дать в инете сразу ссылку на нужную статью, а не диктовать цепочку переходов.


ЕМ>В CHM можно сразу открывать нужную страницу/раздел из командной строки:


ЕМ>hh file.chm:/page.htm#anchor


Можно, но всё-таки намного удобнее дать прямую ссылку, по которой пользователь просто тыкнет. А в этой команде и путь к файлу ему придётся сначала рассчитать (так как программа может быть установлена в разные каталоги, а также использоваться портативно), и в командной строке далеко не все чувствуют себя комфортно. Да и самому банально быстрее получается перейти к нужной странице в браузере и скопипастить ссылку, чем выдирать имя страницы из диалога свойств в CHM и потом комбинировать эту команду. К тому же, веб-вариант доступен, когда сидишь за компом, где эта программа не установлена.
В общем, плюсов достаточно много, а накладные расходы минимальны, у меня для CHM и для веба страницы всё равно из единого источника генерируются программно.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: CHM и HiDPI — как?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 17.08.20 22:01
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

CF>>Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить.


ЕМ>Попробуйте просто сделать картинку, которая будет нормально смотреться на 150-200 DPI, показать ее на обычной веб-страничке с MaxWidth 100%, и поуменьшать окно браузера. Я попробовал с крупными надписями на экране 17" со 128 DPI — при уменьшении смотрится не совсем красиво, но не страшно. На более высоких разрешениях будет еще лучше.


Наконец-то дошли руки проверить, но увы, выглядит жутковато. Как будто грязные разводы по всей картинке. Читабельно, конечно, но "родной" вариант выглядит намного лучше.

В общем, я пришёл к выводу, что полностью устраивающего меня решения в рамках установленных ограничений подобрать, видимо, не получится. Так что продолжу делать справку в расчёте на масштаб 100%, а отдельно можно будет попробовать выложить вариант с подменой картинок скриптами (для тех пользователей, кому базовый вариант слишком мелкий и у кого скрипты не вызывают проблем).

Спасибо всем участникам за помощь!
Почему же, ё-моё, ты нигде не пишешь «ё»?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.