Как я могу представить изогнутый текст в Битовом массиве?

Я в настоящее время динамично создаю битовый массив и использую графический объект от битового массива для рисования строки на нем как так:

System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(bmp);
graph.DrawString(text, font, brush, new System.Drawing.Point(0, 0));

Это возвращает прямоугольный битовый массив со строкой, записанной прямо напротив слева направо. Я хотел бы также смочь потянуть строку в форме радуги. Как я могу сделать это?

5
задан Simon MᶜKenzie 28 August 2014 в 03:48
поделиться

2 ответа

Я думаю, что единственный способ - визуализировать каждый символ отдельно и использовать

Graphics.RotateTransform

для поворота текста. Вам нужно будет самостоятельно определить угол поворота и смещение рендеринга. Вы можете использовать

Graphics.MeasureCharacterRanges

, чтобы получить размер каждого символа.

1
ответ дан 18 December 2019 в 09:05
поделиться

К сожалению, в GDI + нет способа прикрепить строки к пути (это то, что вам нужно).

Таким образом, единственный способ сделать это - сделать это «вручную». Это означает разбиение строки на символы и их размещение на основе ваших собственных расчетов пути.

Если вы не хотите вложить в это много работы, вам следует попытаться найти библиотеку (потенциально полную замену GDI +), чтобы сделать это, или откажитесь от своей радуги.

С помощью WPF вы можете отображать текст на пути ( см. Ссылку для практического руководства )

0
ответ дан 18 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: