VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#制作艺术字

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  相信 C#制作艺术字  中的艺术字功能大家都不陌生,前面这个"Word"单词就是它所为. 

  今天,我们就利用C#来制作几款自己的艺术字,可能会对我们了解字体图像的制作原理有一些帮助.至于有没有使用价值我保持沉默. 

  一.投影效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  投影效果代码

  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));
  }

 

  二.浮雕效果  

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  浮雕文字实现

  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);
  }

  三. 印版效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  印版文字实现

  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);
  }

 

  四. 倒影效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  倒影文字实现

  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);
  }

  五. 阴影效果

  程序运行效果截图:

  C#制作艺术字

 

  阴影文字实现

  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);
  }

  六.纹理效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  线理效果实现

  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));
  }

  七. 倾斜效果

  程序运行效果截图:

  C#制作艺术字

 

  程序代码实现如下:

  倾斜效果实现

  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);
  }

  八.渐变色效果

  C#制作艺术字

  程序代码实现如下:

  渐变色效果实现

  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);
  }

 

  九. 旋转效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  旋转效果实现

  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(".bo ke yuan ", new Font("Lucida Console", 11f), brush, 0, 0);
  //恢复全局变换矩阵
  g.ResetTransform();
  }
  }

  十. ..........

  后记:

  还有很多, 原理都相当简单, 绘制字体图关键要熟悉三个常用绘图类

  Brush, Font, Graphics; 这里用到的主要方法是Graphics类的 DrowString.

  此方法共有6个版本, 这里用到的版本是

  g.DrawString("文本", "字体", "画刷", "X开始坐标", "Y开始坐标")

  暂到此...

  希望对大家有所帮助.

  文章来源: http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296218.html

 

 

  二.浮雕效果  

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  浮雕文字实现

  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);
  }

  三. 印版效果

  程序运行效果截图:

  C#制作艺术字

  程序代码实现如下:

  印版文字实现

  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);
  }



相关教程