Есть ли эффективный способ сделать часть текста в Canvas другим стилем? - PullRequest
1 голос
/ 16 апреля 2019

Некоторые аспекты HTML5 и особенно Canvas, похоже, остались в эпоху программного обеспечения, предшествующего текстовому процессору, в 60-х годах, когда существовали только пишущие машинки.

(Эта проблема) Во-первых, вы не можете сделать слово или предложение жирным шрифтом или подчеркнуть его внутри текста на одном и том же проходе , просто и эффективно.Filltext просто заполняет холст одним фрагментом текста и одним стилем, и все.

( Кстати, второе - это отсутствие функции выравнивания текста с обеих сторон для canvas, поэтому мне пришлось сделать такую ​​функцию самостоятельно, используя JavaScript. В-третьих, это ошибка, препятствующая изменениюнесколько пользовательских шрифтов в последующих операциях холста, если вы предварительно не использовали их (!) после инициации (я обнаружил этот обходной путь после большой борьбы) .

Так что я думаю о двухОбходные пути:

  1. Найдите набор слов, которые вы хотите изменить стиль, вычислите начальную x, y позицию и общую длину, используя 'measureText', сделайте первый проход, заменивс пробелами, затем сделайте второй проход и напишите в пустом пространстве только те слова с другим стилем.

  2. Встраивайте 2 или более стилей в один и тот же пользовательский шрифт и на одном языке, напримерв Unicode они были разными языками.

Есть ли другой обходной путь?

Я спрашиваю, если я что-то упустил, или у кого-то есть децентовая идея.

...