2016-01-25 1 views
2

Я в настоящее время добавления текста к изображению, используя следующий код:C# перекоса текст на изображении с использованием GraphicsPath

using (GraphicsPath graphicsPath = new GraphicsPath()) 
{ 
    graphicsPath.AddString(
     "sample text", 
     new FontFamily("Times New Roman"), 
     (int)FontStyle.Bold, 
     graphics.DpiY * 12/72, 
     new PointF(0,0), 
     StringFormat.GenericDefault 
    ); 

    graphics.FillPath(new SolidBrush(Color.Red), graphicsPath); 
} 

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

Я хочу, чтобы иметь возможность исказить текст для определенного значения X/Y, но не могу понять, как это сделать. Бит новый для GDI.

Любая помощь была бы принята с благодарностью.

+2

https://msdn.microsoft.com/en-us/library/a4t01h2x%28v=vs.110%29 .aspx –

+0

Спасибо, не видел эту статью (думаю, моя формулировка может быть неправильной). Большое спасибо. Добавьте его в качестве ответа, а я за исключением! – williamtroup

+1

Исчерпывание простого образца кода MSDN в SO-ответ - это работа. Просто напишите ответ самостоятельно. –

ответ

2

Используя ссылку, я понял, ответ:

https://msdn.microsoft.com/en-us/library/a4t01h2x%28v=vs.110%29.aspx

using (GraphicsPath graphicsPath = new GraphicsPath()) 
{ 
    graphicsPath.AddString(
     "sample text", 
     new FontFamily("Times New Roman"), 
     (int)FontStyle.Bold, 
     graphics.DpiY * 12/72, 
     new PointF(0,0), 
     StringFormat.GenericDefault 
    ); 

    Matrix matrix = new Matrix(); 
    matrix.Shear(10, 0); 
    graphics.MultiplyTransform(matrix); 

    graphics.FillPath(new SolidBrush(Color.Red), graphicsPath); 
} 
Смежные вопросы