Элемент canvas, к сожалению, плохо обрабатывает текст. Существует множество подходов (см., например, http://canvaspaint.org/blog/2006/12/rendering-text/ ), но в основном они выглядят как хаки. Что я могу сделать, что является кроссплатформенным и дает мне максимальную гибкость, чтобы сделать мои шрифты такими, как я хочу?
Как лучше всего рисовать текст на элементе холста HTML?
Ответы (2)
Вы смотрели typeface.js, http://typeface.neocracy.org. Я слышал, что это довольно твердо для написания текста. Вот с их сайта:
«typeface.js использует возможности векторного рисования браузеров для рисования текста в HTML-документах. Долгое время браузеры поддерживали векторное рисование — Firefox, Safari и Opera поддерживают элемент <canvas> (а также SVG), а IE поддерживает ВМЛ.
Проект typeface.js состоит из двух компонентов: модуля perl для конвертации шрифтов и библиотеки javascript для рисования в браузере. Модуль Perl извлекает информацию о контуре глифа из шрифтов TrueType и записывает эти данные в формате JSON. Затем библиотека javascript проходит по HTML-документу и отображает текст с помощью <canvas> или VML для рисования глифов.
В браузерах, поддерживающих <canvas>, текст можно выделить, но вы должны верить. Когда вы выбираете, нет обратной связи, нет выделения, чтобы вы знали, что это работает. Будущая работа будет направлена на реализацию улучшенной кросс-браузерной поддержки выделения текста с выделением». //typeface.neocracy.org/usage.html)
Если вы хотите использовать текстовые методы HTML5, попробуйте эту библиотеку: http://code.google.com/p/canvas-text/ Я главный разработчик, поэтому могу помочь и очень быстро внести изменения.
Демонстрации находятся здесь: http://canvas-text.googlecode.com/svn/trunk/examples/index.html
Он все еще находится в стадии альфа-тестирования, поэтому приветствуются любые сообщения об ошибках и отзывы! :)