构建艺术字

相信 Word 
中的 艺术字 功用大家都不素不相识, 前边这一个 “Word” 单词正是它所为. 

   
先天, 大家就动用C#来制作七款融洽的艺术字, 恐怕会对大家询问字体图像的创立原理有部分帮助. 至于有未有采用价值笔者保持沉默.
 

 

一. 阴影效果

程序运营效果截图:

图片 1

程序代码落成如下:

图片 2
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 = “博客园”;
//绘制阴影
g.DrawString(text, newFont, grayBrush, new PointF(0, 30));
g.ResetTransform();
//绘制前景
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
}

 

 

二. 浮雕效果    

 

程序运行作效果果截图: 

图片 3

程序代码落成如下:

 

图片 4
private void Form1_Paint(object sender, PaintEventArgs e)
{
//浮雕文字
Brush backBrush = Brushes.Black;
Brush foreBrush = Brushes.White;
Font font = new Font(“宋体”, Convert.ToInt16(40), FontStyle.Regular);
Graphics g = this.CreateGraphics();
string text = “博客园”;
SizeF size = g.MeasureString(text, font);
Single posX = (this.Width – Convert.ToInt16(size.Width)) / 2;
Single posY = (this.Height – Convert.ToInt16(size.Height)) / 2;
g.DrawString(text, font, backBrush, posX+1, posY+1);
g.DrawString(text, font, foreBrush, posX, posY);
}

 

 三. 印版效果

 

程序运维效果截图:

图片 5

 程序代码达成如下:

 

图片 6
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 = “博客园”;
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);
}

 

四. 倒影效果

 

程序运转效果截图:

 

图片 7

程序代码完成如下:

 

 

图片 8
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 = “博客园”;
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);
}

 

 

伍. 阴影效果

程序运转作效果果截图:

图片 9

图片 10
private void Form1_Paint(object sender, PaintEventArgs e)
{
//阴影文字
string text = “博客园”;
Brush shadowBrush = Brushes.Gray;
Brush foreBrush = Brushes.Black;
Font font = new Font(“幼圆”, Convert.ToInt16(40), FontStyle.Regular);
Graphics g = this.CreateGraphics();
SizeF size = g.MeasureString(text, font);
Single posX = (this.Width – Convert.ToInt16(size.Width)) / 4;
Single posY = (this.Height – Convert.ToInt16(size.Height)) / 3;
g.DrawString(text, font, shadowBrush, posX + Convert.ToInt16(20),
posY + Convert.ToInt16(20));
g.DrawString(text, font, foreBrush, posX, posY);
}

 

6.纹理效果

程序运转效果截图:

图片 11

程序代码完成如下:

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

 

7. 倾斜效果

程序运营效果截图:

图片 13

程序代码落成如下:

 

 

图片 14
private void Form1_Paint(object sender, PaintEventArgs e)
{
Brush foreBrush = Brushes.Blue;
Font font = new Font(“幼圆”, Convert.ToInt16(40), FontStyle.Regular);
Graphics g = this.CreateGraphics();
string text = “博客园”;
SizeF size = g.MeasureString(text, font);
Single posX = (this.Width – Convert.ToInt16(size.Width)) / 2;
Single posY = (this.Height – Convert.ToInt16(size.Height)) / 2;
g.TranslateTransform(posX, posY);
Matrix transform = g.Transform;

//右倾斜文字
//float shearX = -0.230F; 

//左倾斜文字
float shearX = 0.550F; 
float shearY = 0.10F;
transform.Shear(shearX, shearY);
g.Transform = transform;
g.DrawString(text, font, foreBrush, 0, 0);
}

 

 

八.渐变脸效果

图片 15

程序代码完结如下:

图片 16
private void Form1_Paint(object sender, PaintEventArgs e)
{
//渐变色文字
String text = ” 博客园”;
Brush ShadowBrush = Brushes.Gray;
Brush ForeBrush = Brushes.Black;
Font font = new Font(“幼圆”, System.Convert.ToInt16(40),
FontStyle.Regular);
Graphics g = this.CreateGraphics();
//g.Clear(Color.White);
PointF point = new PointF(0, 0);
SizeF size = g.MeasureString(text, font);
RectangleF rectangle = new RectangleF(point, size);
Brush brush = new LinearGradientBrush(rectangle, Color.Red, Color.Green,
LinearGradientMode.Horizontal);
int width = (this.Width – Convert.ToInt16(size.Width)) / 2;
int height = (this.Height – Convert.ToInt16(size.Height)) / 2;
g.DrawString(text, font, brush, width, height);
}

 

玖. 旋转效果

程序运转效果截图:

图片 17

程序代码落成如下:

图片 18
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(“图片 19.bo ke
yuan “, new Font(“Lucida Console”, 11f), brush, 0, 0);
//复苏全局调换矩阵
g.ResetTransform();
}
}

 

十. ……….

后记:

还有不少, 原理都一定轻易, 绘制字体图根本要熟习多个常用绘图类

Brush, Font, Graphics; 那里运用的重要方法是Graphics类的 DrowString.

此措施共有多少个版本, 那里运用的本子是

g.DrawString(“文本”, “字体”, “画刷”, “X开首坐标”, “Y开端坐标”)

暂到此…

但愿对大家享有接济.

 

 出处:http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296218.html

相关文章