2010-06-01 10 views
0

Мне нужно отобразить текст в 3D с помощью vml/canvas/svg и сделать некоторое преобразование в форму текста, как эффект Ctrl + T в Photoshop, даже выровнять строку текста с кривой. Например, преобразуйте обычный текст в повернутую, трапециевидную/четырехугольную форму.Можно ли преобразовать текст в фигуру в VML/canvas/SVG?

Итак, есть ли способ конвертировать текст в форму?

Единственное, что близко, это getImageData() в firefox, который не идеален, но хорошо. Какие-нибудь лучшие методы?

Использование браузера конкретных хаков или вуду в порядке, но нет вспышки пожалуйста :)

+1

Непонятно, что именно вы просите здесь. В SVG, по крайней мере, вам не нужно преобразовывать текст в форму, чтобы преобразовать его. Элемент 'textPath' помещает текст в путь. Есть ли какая-то конкретная трансформация, которую нужно сделать для части одной формы письма? – Ken

+0

@Ken Ваш отзыв очень полезен, я проверяю его. Об определенной трансформации, например, преобразуйте текст в повернутую форму трапеции. Возможно ли это? – est

+1

К сожалению, похоже, что SVG 1.1 поддерживает только аффинные преобразования, но не перспективные проекции. Это не поможет вам сегодня, но они, похоже, находятся в списке желаний для SVG 2.0: http://www.w3.org/TR/SVG2Reqs/#req-graphics http://www.svgopen.org/2008/ бумаги/86-Achieving_3D_Effects_with_SVG/# section_4_4_creating_perspective_effects_using_future_features – Ken

ответ

0

После многих сообщений stackoverflow я считаю, что лучшим решением является использование inkscape.

Так что Javascript или HTML5 или холст или SVG не могут этого сделать.

1

Вы можете использовать косые преобразования в SVG, чтобы сделать простой isometric projections. То же самое касается холста HTML5. Если вам нужны другие типы перспективных проекций, есть способы сделать это, например, несколько преобразований в сочетании с отсечением или с помощью фильтра SVG (см. Некоторые примеры Ханса Шмукера here).