Чем отличаются жирный и обычный шрифты?
Чем попиксельно отличается жирный шрифт от обычного. То есть каков алгоритм получения из обычного символа его жирной версии? Например в Paint можно одним файлом с шрифтом писать и обычными символами, и жирными, и Italic. Интересует только разница между обычными и жирными версиями шрифтов.
Ответы (2 шт):
Автор шрифта обычно изготавливает несколько независимых наборов глифов. Один нормальный, второй жирный, третий италик, четвёртый жирный италик и т.д. В хорошем файле со шрифтами должны быть все варианты написания. У каких-то шрифтов при этом есть весь набор вариантов, а у каких-то только часть. То же касается и поддержки языков. Где-то только 1 язык, где-то 5-7, где-то полный Unicode.
"На ходу" обычно никто варианты шрифта не генерит, т.к., в зависимости от шрифта, получается либо средне, либо совсем паршиво.
При отсутствии жирного шрифта программы (даже Word это умеет) используют полупрозрачное наложение со сдвигом на 0.5-1 пиксель (или иные попугаи) по горизонтали и вертикали. А в идеале ещё и по диагоналям.
Для италика - сдвиг каждой строки пикселей на какую-то маленькую величину.
Конечно, при таком вольном обращении с растром надо хорошенько реализовывать правильные anti-aliasing алгоритмы, чтобы не получить артефакты типа 'A' без дырки, итд.
В принципе, можно просто вектор рисовать более толстой линией, но это часто выглядит поганенько.