ASP.NET实例:用C#制作艺术字
相信 中的 艺术字 功能大家都不陌生, 前面这个 "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开始坐标")
暂到此...
希望对大家有所帮助.
来源:http://www.cnblogs.com/ziyiFly/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/daonidedie/archive/2008/10/09/3044895.aspx
转载于:https://www.cnblogs.com/chencidi/archive/2010/06/15/1758529.html
ASP.NET实例:用C#制作艺术字相关推荐
- Asp.Net实例:C# 绘制统计图(一) ——柱状图
Asp.Net实例:C# 绘制统计图 (柱状图, 折线图, 扇形图) 统计图形种类繁多, ...
- ip登陆异常 php,PHP实例:PHP制作登录异常ip检测功能的实例代码
<PHP实例:PHP制作登录异常ip检测功能的实例代码>要点: 本文介绍了PHP实例:PHP制作登录异常ip检测功能的实例代码,希望对您有用.如果有疑问,可以联系我们. 使用函数查询数据库 ...
- HTML5期末大作业:漫画网站设计——海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码
HTML5期末大作业:漫画网站设计--海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码 常见网页设计作业题材有 个 ...
- web前端期末大作业(月饼美食网站) html+css+javascript网页设计实例 企业网站制作...
web前端期末大作业(月饼美食网站) html+css+javascript网页设计实例 企业网站制作 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手? ...
- HTML5教程实例-用Canvas制作线性渐变图形
HTML5教程实例-用Canvas制作线性渐变图形 到目前为止,我们使用canvas绘制图形的基本知识已经介绍完毕,从本节开始,我们将介绍其他比较高级的绘制知识之一 - 线性渐变,首先我们来回顾一下& ...
- PageAdmin CMS网站建设实例:如何制作一个报名表?
PageAdmin CMS网站制作教程实例:如何制作一个报名表? 有时我们根据需求需要制作一些自定义表,该如何去制作呢? 我们以制作一个报名表为例: 登录后台地址,进入后台, 2.在顶部导航中找到系统 ...
- 咸鱼ZTMS实例—加速传感器制作平衡仪
咸鱼ZTMS实例-加速传感器制作平衡仪 MMA7660FC 加速度传感器基本使用 制作水平仪 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动 ...
- 关于美食商城HTML网页设计-----在线美食订餐网站html模板源码30个页面(功能齐全) html+css+javascript网页设计实例 企业网站制作...
关于美食商城HTML网页设计-----在线美食订餐网站html模板源码30个页面(功能齐全) html+css+javascript网页设计实例 企业网站制作 临近期末, 你还在为HTML网页设计结课 ...
- 哪个软件可以自己设计字体?好用的制作艺术字软件
有什么软件可以制作艺术字?有可以自己设计艺术字的软件吗?Art Text是适用于所有人的图形设计软件,提供各种即用型样式和材料,纹理,图标,字体和背景选择,特殊设计的效果和形状转换,Art Text可 ...
- web前端实训作业 html+css+javascript 水果网页设计实例 企业网站制作
web前端实训作业 html+css+javascript 仿果然新鲜水果(6页面)网页设计实例 企业网站制作 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无 ...
最新文章
- 2021阿里技术人的成长路径!
- 如何在Leangoo中,为企业创建项目
- python的sklearn机器学习SVM中的NuSVC运行报错:ValueError: b'specified nu is infeasible'
- python next用法
- 乐观锁和悲观锁的区别(最全面的分析)
- 乐视姓孙还是姓贾?反正我不知道
- 编程之美-高效率安排见面会的方法整理
- Win 10 更新,Linux 内核的 WSL 2 开始上线
- 谈谈原子变量与锁的性能比较
- ASP.NET Web API 配置 JSONP
- Windows代替touch命令
- c语言数学函数库根号程序,用C 编写程序时根号肿么输入
- 逻辑回归算法原理MATLAB,逻辑回归算法(MATLAB)
- ROI是什么?电商ROI计算公式及理论及详解
- 数据分析——常见数据指标汇总
- 无需任何插件,教你影像如何精准导入CAD软件进行绘图?
- php 与shell有什么关系,shell是什么意思
- Swift学习笔记(四)
- wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
- 【2015NOIP普及组】T4:推销员 试题解析
热门文章
- html button点击后失去焦点,页面一个input输入框和一个取消按钮,input失去焦点时向后台发交易,点击取消按钮时不发交易...
- 同学信誓旦旦地说,我司的系统从来不做性能调优!
- 剑指offer思路总结
- oracle logical standby,创建Oracle 11g logical standby
- 听课感悟——信息与数字化
- 一个老程序员分析程序员为什么会跳槽
- WinDbg分析dump文件
- 个人日记—《八佰》电影观后感—20200823
- coredump 使用总结
- 年关将至,VR全景在这些行业大显身手的机会来了!