Drawing a Rotated Text to an Image in C#(在 C# 中将旋转的文本绘制到图像中)
问题描述
我正在使用 Graphics 类的 drawstring 方法在 Image 上绘制一个字符串.
I'm using the the drawstring method of Graphics class to draw a String on Image.
g.DrawString(mytext, font, brush, 0, 0);
我正在尝试使用图形对象的旋转变换功能按角度旋转文本,以便可以以任何角度绘制文本.我如何使用旋转变换来做到这一点.我使用的旋转变换代码是
I'm trying to rotate the text by angle using the Rotate Transform Function of the graphic object so that the text can be drawn at any angle.How can i do it using Rotate Transform. The rotate Transform Code i used is
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;
文本是以旋转的角度绘制的,但它没有按我的意愿绘制在中心.请帮帮我.
The Text is Drawn at a rotated angle but it is not drawn at the centre as i want.Plz help me out.
推荐答案
如果要使文本居中,仅 RotateTransform
或 TranslateTranform
是不够的.您还需要通过测量来偏移文本的起点:
It's not enough to just RotateTransform
or TranslateTranform
if you want to center the text. You need to offset the starting point of the text, too, by measuring it:
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));
}
来自 如何在 GDI+ 中旋转文本?
这篇关于在 C# 中将旋转的文本绘制到图像中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 C# 中将旋转的文本绘制到图像中


- 如何用自己压缩一个 IEnumerable 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 输入按键事件处理程序 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01