asp.net创建文字特效

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

相信Word 中的 艺术字 功能大家都不陌生。今天, 我们就利用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));

}

二. 浮雕效果

程序运行效果截图:

程序代码实现如下:

浮雕文字实现

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

}

三. 印版效果

程序运行效果截图:

程序代码实现如下:

印版文字实现

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

}

四. 倒影效果

程序运行效果截图:

程序代码实现如下:

倒影文字实现

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

}

五. 阴影效果

程序运行效果截图:

阴影文字实现

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

}

六.纹理效果

程序运行效果截图:

程序代码实现如下:

线理效果实现

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

}

七. 倾斜效果

程序运行效果截图:

程序代码实现如下:

倾斜效果实现

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

}

八.渐变色效果

程序代码实现如下:

渐变色效果实现

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

}

九. 旋转效果

程序运行效果截图:

程序代码实现如下:

旋转效果实现

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开始坐标")

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航