Вывод текста

Было бы странно, если бы канва не позволяла выводить произвольный текст. Существуют два метода и несколько свойств для вывода текста.

Метод strokeText выводит заданный текст в указанное место. Текст рисуется в виде контура, без заливки; цвет контура задается значением свойства strokeStyle:

<контекст рисования>.strokeText(<выводимый текст>,

<горизонтальная координата>, <вертикальная координата>

[, <максимальная ширина>])

Первый параметр этого метода задает выводимый текст в виде строки. Второй и третий параметры задают координаты точки, в которой будет выведен текст, в пикселах в виде чисел. По умолчанию выводимый текст будет выровнен по левому краю относительно этой точки.

Четвертый, необязательный, параметр определяет максимальное значение ширины, которую может принять выводимый на канву текст. Если выводимый текст получается шире, канва выводит его либо шрифтом с уменьшенной шириной символов (если данный шрифт поддерживает такое начертание), либо шрифтом меньшего размера.

Метод strokeText не возвращает результата.

Пример:

ctxCanvas.strokeStyle = "blue";

ctxCanvas.strokeText("Всем привет!", 200, 50, 100);

Метод fillText также выводит заданный текст в указанное место. Однако текст этот представляет собой одну заливку, без контура; цвет заливки задается значением свойства fillStyle:

<контекст рисования>.fillText(<выводимый текст>,

<горизонтальная координата>, <вертикальная координата>

[, <максимальная ширина>])

Формат вызова этого метода такой же, как и у метода strokeText:

ctxCanvas.fillStyle = "yellow";

ctxCanvas.fillText("Всем пока!", 50, 100);

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

ctxCanvas.fillStyle = "yellow";

ctxCanvas.font = "italic 12pt Verdana";

ctxCanvas.fillText("Всем пока!", 50, 100);

Свойство textAlign позволяет задать горизонтальное выравнивание выводимого текста относительно точки, в которой он будет выведен (координаты этой точки задаются вторым и третьим параметрами методов strokeText и fillText). Это свойство может принимать следующие значения:

"left" – выравнивание по левому краю;

"right" – выравнивание по правому краю;

"start" – выравнивание по левому краю, если текст выводится по направлению слева направо, и по правому краю в противном случае (значение по умолчанию);

"end" – выравнивание по правому краю, если текст выводится по направлению слева направо, и по левому краю в противном случае;

"center" – выравнивание по центру.

Пример:

ctxCanvas.fillStyle = "yellow";

ctxCanvas.font = "italic 12pt Verdana";

ctxCanvas.textAlign = "center";

ctxCanvas.fillText("Всем пока!", 100, 100);

Свойство textBaseline позволяет задать вертикальное выравнивание выводимого текста относительно точки, в которой он будет выведен. Это свойство может принимать следующие значения:

"top" – выравнивание по верху прописных (больших) букв;

"hanging" – выравнивание по верху строчных (маленьких) букв;

"middle" – выравнивание по середине строчных букв;

"alphabetic" – выравнивание по базовой линии букв европейских алфавитов (значение по умолчанию);

"ideographic" – выравнивание по базовой линии иероглифических символов (она находится чуть ниже базовой линии букв европейских алфавитов);

"bottom" – выравнивание по низу букв.

Пример:

ctxCanvas.fillStyle = "yellow";

ctxCanvas.font = "italic 12pt Verdana";

ctxCanvas.textAlign = "center";

ctxCanvas.textBaseline = "top";

ctxCanvas.fillText("Всем пока!", 100, 100);