Рисование повернутого текста на изображение в C#
Я использую метод drawstring класса Graphics для рисования строки на изображении.
g.DrawString(mytext, font, brush, 0, 0);
Я пытаюсь повернуть текст на угол, используя функцию преобразования поворота графического объекта, чтобы текст можно было рисовать под любым углом.Как я могу это сделать, используя Rotate Transform. Поворот преобразование кода я использовал
Bitmap m = new Bitmap(pictureBox1.Image);
Graphics x=Graphics.FromImage(m);
x.RotateTransform(30);
SolidBrush brush = new SolidBrush(Color.Red);
x.DrawString("hi", font,brush,image.Width/2,image.Height/2);
//image=picturebox1.image
pictureBox1.Image = m;
текст рисуется под углом поворота, но он не рисуется в центре, как я хочу.Плз помогите мне.
2 ответов
недостаточно просто RotateTransform
или TranslateTranform
Если вы хотите центрировать текст. Вам также нужно смещать начальную точку текста, измеряя ее:
Bitmap bmp = new Bitmap(pictureBox1.Image);
using (Graphics g = Graphics.FromImage(bmp)) {
g.TranslateTransform(bmp.Width / 2, bmp.Height / 2);
g.RotateTransform(30);
SizeF textSize = g.MeasureString("hi", font);
g.DrawString("hi", font, Brushes.Red, -(textSize.Width / 2), -(textSize.Height / 2));
}