博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GDI+ 文字操作
阅读量:5104 次
发布时间:2019-06-13

本文共 3182 字,大约阅读时间需要 10 分钟。

 

一、投影文字

 
private
void
Form1_Paint(
object
sender, PaintEventArgs e)
{
//
投影文字
Graphics g
=
this
.CreateGraphics();
//
设置文本输出质量
g.TextRenderingHint
=
TextRenderingHint.ClearTypeGridFit;
g.SmoothingMode
=
SmoothingMode.AntiAlias;
Font newFont
=
new
Font(
"
Times New Roman
"
,
48
);
Matrix matrix
=
new
Matrix();
//
投射
matrix.Shear(
-
1.5f
,
0.0f
);
//
缩放
matrix.Scale(
1
,
0.5f
);
//
平移
matrix.Translate(
130
,
88
);
//
对绘图平面实施坐标变换、、
g.Transform
=
matrix;
SolidBrush grayBrush
=
new
SolidBrush(Color.Gray);
SolidBrush colorBrush
=
new
SolidBrush(Color.BlueViolet);
string
text
=
"
MINGRISOFT
"
;
//
绘制阴影
g.DrawString(text, newFont, grayBrush,
new
PointF(
0
,
30
));
g.ResetTransform();
//
绘制前景
g.DrawString(text, newFont, colorBrush,
new
PointF(
0
,
30
));
}

二、倒影文字

 
private
void
Form1_Paint(
object
sender, PaintEventArgs e)
{
//
倒影文字
Brush backBrush
=
Brushes.Gray;
Brush foreBrush
=
Brushes.Black;
Font font
=
new
Font(
"
幼圆
"
, Convert.ToInt16(
40
), FontStyle.Regular);
Graphics g
=
this
.CreateGraphics();
string
text
=
"
MINGRISOFT
"
;
SizeF size
=
g.MeasureString(text, font);
int
posX
=
(
this
.Width
-
Convert.ToInt16(size.Width))
/
2
;
int
posY
=
(
this
.Height
-
Convert.ToInt16(size.Height))
/
2
;
g.TranslateTransform(posX, posY);
int
ascent
=
font.FontFamily.GetCellAscent(font.Style);
int
spacing
=
font.FontFamily.GetLineSpacing(font.Style);
int
lineHeight
=
System.Convert.ToInt16(font.GetHeight(g));
int
height
=
lineHeight
*
ascent
/
spacing;
GraphicsState state
=
g.Save();
g.ScaleTransform(
1
,
-
1.0F
);
g.DrawString(text, font, backBrush,
0
,
-
height);
g.Restore(state);
g.DrawString(text, font, foreBrush,
0
,
-
height);
}

三、文字填充线条

 
private
void
Form1_Paint(
object
sender, PaintEventArgs e)
{
//
使用图像填充文字线条
TextureBrush brush
=
new
TextureBrush(Image.FromFile(Application.StartupPath
+
"
\\花.jpg
"
));
Graphics g
=
e.Graphics;
g.DrawString(
"
MINGRISOFT
"
,
new
Font(
"
隶书
"
,
60
), brush,
new
PointF(
0
,
0
));
}

四、旋转文字

 
private
void
Form1_Paint(
object
sender, PaintEventArgs e)
{
//
旋转显示文字
Graphics g
=
e.Graphics;
g.SmoothingMode
=
System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
for
(
int
i
=
0
; i
<=
360
; i
+=
10
)
{
//
平移Graphics对象到窗体中心
g.TranslateTransform(
this
.Width
/
2
,
this
.Height
/
2
);
//
设置Graphics对象的输出角度
g.RotateTransform(i);
//
设置文字填充颜色
Brush brush
=
Brushes.DarkViolet;
//
旋转显示文字
g.DrawString(
"
......MINGRISOFT
"
,
new
Font(
"
Lucida Console
"
, 11f), brush,
0
,
0
);
//
恢复全局变换矩阵
g.ResetTransform();
}
}

五、印版文字

 
private
void
Form1_Paint(
object
sender, PaintEventArgs e)
{
//
印版文字
int
i
=
0
;
Brush backBrush
=
Brushes.Black;
Brush foreBrush
=
Brushes.Violet;
Font font
=
new
Font(
"
Times New Roman
"
, System.Convert.ToInt16(
40
), FontStyle.Regular);
Graphics g
=
this
.CreateGraphics();
g.Clear(Color.White);
string
text
=
"
MINGRISOFT
"
;
SizeF size
=
g.MeasureString(text, font);
Single posX
=
(
this
.Width
-
Convert.ToInt16(size.Width))
/
2
;
Single posY
=
(
this
.Height
-
Convert.ToInt16(size.Height))
/
3
;
while
(i
<
Convert.ToInt16(
20
))
{
g.DrawString(text, font, backBrush, posX
-
i, posY
+
i);
i
=
i
+
1
;
}
g.DrawString(text, font, foreBrush, posX, posY);
}

转载于:https://www.cnblogs.com/carekee/articles/2334615.html

你可能感兴趣的文章
json数据在前端(javascript)和后端(php)转换
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Groovy中那些神奇注解之ToString
查看>>
宇宙第一开发工具:vs2019 开发Python
查看>>
Tomcat Https配置
查看>>
检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法
查看>>
关于mybatis中基本类型条件判断问题
查看>>
RDD之二:原理
查看>>
Struts2.0 xml文件的配置(package,namespace,action)
查看>>
转载:【Oracle 集群】RAC知识图文详细教程(四)--缓存融合技术和主要后台进程
查看>>
2018-2019-2 网络对抗技术 20165301 Exp 9 Web安全基础
查看>>
待续--mysql中key 、primary key 、unique key 与index区别
查看>>
Day19内容回顾
查看>>
bootstrap分页
查看>>
洛谷 P1144 最短路计数 解题报告
查看>>
第七次作业
查看>>
c++map的用法
查看>>
js交互
查看>>
vim工具
查看>>
Openssl genrsa命令
查看>>