Рейтинг:2

Исправлен рендеринг шрифтов WebKit в 20.04.

флаг ph

Я использую cutycapt для создания скриншотов веб-страниц. Когда я перешел с Kubuntu 16.04 на Kubuntu 20.04, я заметил, что качество рендеринга шрифтов значительно ухудшилось. Я сделал несколько скриншотов одного и того же страница и увеличил один и тот же фрагмент на обоих скриншотах для сравнения. Команда, которая использовалась:

cutycapt --out=screenshot.png --url=http://www.debianadmin.com/how-to-disable-ipv6-in-debian.html

Вот тот, что сделан в Kubuntu 16.04 (версия cutycapt 0.0~svn6-3.1, зависит от версии libqtwebkit4 2.3.2-0ubuntu11):

Кубунту 16.04

Моя система настроена на полный хинтинг. Основы букв на этом скриншоте резкие, а их хинтинг явно настроен на «полный».
Теперь скриншот сделанный в Kubuntu 20.04 (версия cutycapt 0.0~svn10-0.1build1, зависит от версии libqt5webkit5 5.212.0~alpha4-1ubuntu2):

Кубунту 20.04

Все буквы окружены серой бахромой. Взгляните на слово «комментарий» — все основы в букве «м» имеют разную толщину.Мне кажется, что это "легкий" намек или даже отсутствие намека.
Я вполне уверен, что обе системы правильно настроены для использования полного хинтинга (в Системные настройки > Шрифты И в /etc/шрифты/conf.d/) и все остальные шрифты подчиняются этим настройкам.

я пытался добавить .config/fontconfig/fonts.conf с содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
        <edit name="autohint" mode="assign"><bool>false</bool></edit>
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
    </match>
</fontconfig>

Но эти настройки были проигнорированы.
Насколько я знаю, cutycapt использует библиотеку QtWebKit. Я не знаю, контролируются ли эти настройки рендеринга непосредственно движком Qt или WebKit. Я также пробовал PhantomJS и wkhtmltoimage для захвата скриншотов в 20.04, но они дают такой же размытый текст. Любые советы по настройке хинтинга или альтернативного программного обеспечения приветствуются.

P.S. Если кто-то знает, как я могу также включить субпиксельное сглаживание на этих скриншотах, было бы неплохо.

флаг vn
Не могли бы вы предоставить версию cutycapt.you, которую вы используете, и точные шаги для воспроизведения проблемы? Есть ли какая-либо метрика, которую вы используете для сравнения? Может быть, разрешение с использованием «идентификации» Imagemagick?
whtyger avatar
флаг ph
@PabloBianchi Обновил мой пост. URL-адрес может быть любым (в моем примере я использовал протокол http, потому что у старых версий cutycapt есть проблемы с открытием https). `identify` показывает немного другое разрешение по вертикали для скриншотов из-за более разреженного рендеринга строк текста во втором примере. Вы можете сохранить мои примеры и сравнить их, переключая изображения по Alt+Tab — разница очевидна.
user.dz avatar
флаг ng
Вы можете попробовать увеличить размер, используя `--min-width ... --min-height ...` (поскольку разрешение не указано в параметрах), как в этом сообщении https://unix.stackexchange.com/questions/ 231482/как делать скриншоты с более высоким разрешением с помощью cutycapt . Другой вариант — использовать SVG в качестве начального вывода, а затем преобразовать его с требуемым разрешением.
whtyger avatar
флаг ph
@user.dz Размер не имеет значения, я стремлюсь к четкости текста. Вывод SVG действительно улучшает эту ясность, но он теряется, когда этот SVG конвертируется в PNG (я использовал команду `convert` из ImageMagick).Кроме того, `convert` не работает на больших изображениях с ошибкой _слишком много координат Безье_.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.