`
paulfzm
  • 浏览: 883168 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

asp.net 创建文字特效

阅读更多

相信 中的 艺术字 功能大家都不陌生, 前面这个 "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开始坐标")

分享到:
评论

相关推荐

    asp.net输入框特效

    总的来说,ASP.NET输入框特效的实现涉及多方面的技能,包括前端开发和后端编程。开发者需要掌握HTML、CSS、JavaScript以及ASP.NET的相关知识,通过巧妙地组合和应用,可以创造出既实用又美观的用户界面。在实际开发...

    asp.net网页常用特效整理

    根据给定的文件信息,以下是对ASP.NET网页中常用特效的...以上就是基于给定文件中提供的ASP.NET网页特效知识点整理,涵盖了从简单的文字样式调整到复杂的脚本功能实现,希望对使用ASP.NET开发网页的朋友们有所帮助。

    ASP.NET水印图片_CSS滤镜特效

    在ASP.NET框架中,水印图片主要用于在图片上添加文字或图像标识,通常用于版权声明或品牌标志。这可以通过编程方式实现,例如使用C#或VB.NET编写代码,或者使用.NET Framework提供的图像处理库。创建水印的基本步骤...

    ASP.NET 3.5 开发大全

    9.2 ASP.NET创建和插入记录 9.2.1 SQL INSERT数据插入语句 9.2.2 使用Command对象更新记录 9.2.3 使用DataSet数据集插入记录 9.3 ASP.NET更新数据库 9.3.1 SQL UPDATE数据更新语句 9.3.2 使用Command对象更新记录 ...

    ASP.NET3.5从入门到精通

    15.3 绘制文字特效 15.3.1 投影特效 15.3.2 倒影特效 15.3.3 旋转特效 15.4 绘制图片 15.4.1 载入图像文件 15.4.2 GDI+输出图像 15.5 图像特效处理 15.5.1 底片效果 15.5.2 浮雕效果 15.6 小结 第 16 章 ASP.NET 3.5...

    ASP.NET 3.5 开发大全word课件

    9.2 ASP.NET创建和插入记录 9.2.1 SQL INSERT数据插入语句 9.2.2 使用Command对象更新记录 9.2.3 使用DataSet数据集插入记录 9.3 ASP.NET更新数据库 9.3.1 SQL UPDATE数据更新语句 9.3.2 使用Command对象更新记录 ...

    ASP.NET 3.5 开发大全11-15

    9.2 ASP.NET创建和插入记录 9.2.1 SQL INSERT数据插入语句 9.2.2 使用Command对象更新记录 9.2.3 使用DataSet数据集插入记录 9.3 ASP.NET更新数据库 9.3.1 SQL UPDATE数据更新语句 9.3.2 使用Command对象更新记录 ...

    ASP.NET 3.5 开发大全1-5

    9.2 ASP.NET创建和插入记录 9.2.1 SQL INSERT数据插入语句 9.2.2 使用Command对象更新记录 9.2.3 使用DataSet数据集插入记录 9.3 ASP.NET更新数据库 9.3.1 SQL UPDATE数据更新语句 9.3.2 使用Command对象更新记录 ...

    asp.net 按钮 样式 源码

    ASP.NET是一种基于.NET Framework的服务器端编程模型,用于构建动态Web应用程序。在ASP.NET中,按钮控件是非常常见且重要的元素,它允许用户与页面进行交互,触发服务器端的事件处理。本文将深入探讨ASP.NET按钮样式...

     在线大头帖ASP.NET

    在线大头帖 ASP.NET 是一个基于ASP.NET技术开发的在线照片编辑和个性化服务的应用程序,主要功能是让用户能够上传自己的照片,并通过一系列的编辑工具,如裁剪、添加特效、文字、边框等,制作出具有趣味性和个性化的...

    ASP.NET在线大头帖 v2.0(全新版)_webdtt2.0.zip

    ASP.NET 是微软公司开发的一种基于.NET Framework的服务器端编程模型,用于构建动态网站、Web应用程序和Web服务。在这个“ASP.NET在线大头帖 v2.0(全新版)_webdtt2.0.zip”压缩包中,我们看到的是一个利用ASP.NET...

    Visual2005+C#+asp.net编程实例精粹2(附源代码)

    《Visual2005+C#+asp.net编程实例精粹2》是一本专注于使用Microsoft的开发工具Visual Studio 2005,结合C#语言和ASP.NET框架进行Web应用程序开发的实战指南。书中涵盖了大量的实例,旨在帮助开发者深入理解和熟练...

    ASP.NET-[其他类别]签名档在线制作系统.zip

    在这个特定的“ASP.NET-[其他类别]签名档在线制作系统.zip”中,我们可以推测这是一个允许用户在线创建和定制他们自己的签名档的系统。签名档通常在论坛、电子邮件和其他在线交流平台上用于个性化用户的标识。 该...

    ASP.NET开发大全第15章.图形图像编程

    下面是一个简单的 GDI+ 示例,展示如何在 ASP.NET 页面上绘制一个矩形: ```csharp using System.Drawing; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bitmap bitmap = new ...

    利用ASP.NET MVC+Bootstrap搭建个人博客之praise.js点赞特效插件(二)

    在本教程中,我们将深入探讨如何使用ASP.NET MVC和Bootstrap框架构建个人博客,并集成praise.js点赞特效插件。这个插件是基于jQuery的小巧工具,可以为博客文章添加美观的点赞功能。以下是对该技术的详细说明: 1. ...

    ASPNET35开发大全第一章

    9.2 ASP.NET创建和插入记录 9.2.1 SQL INSERT数据插入语句 9.2.2 使用Command对象更新记录 9.2.3 使用DataSet数据集插入记录 9.3 ASP.NET更新数据库 9.3.1 SQL UPDATE数据更新语句 9.3.2 使用Command对象更新记录 ...

    ASP.NET 2.0,C#—-图像特效处理

    在ASP.NET 2.0中,使用C#进行图像特效处理是一种常见的需求,尤其是在网站开发中,例如添加水印、调整尺寸等。本篇将详细解释如何利用.NET框架提供的类来实现这些功能。 首先,我们要引入`System.Drawing`命名空间...

    ASP秀网页特效(CHM).chm

    6. **组件和控件**:ASP支持使用COM组件(如ASP.NET Web Forms控件),这些组件可以增强网页功能,简化特效实现。 7. **错误处理**:良好的错误处理机制是任何应用程序的关键,ASP提供On Error语句进行错误捕获和...

Global site tag (gtag.js) - Google Analytics