• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#制作艺术字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

 

一. 投影效果

程序运行效果截图:

程序代码实现如下:

//绘制阴影
g.DrawString(text, newFont, grayBrush, new PointF(0, 30));
g.ResetTransform();
//绘制前景
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
}

 

 

二. 浮雕效果    

 

程序运行效果截图: 

程序代码实现如下:

 

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

 

 三. 印版效果

 

程序运行效果截图:

 程序代码实现如下:

 

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

 

四. 倒影效果

 

程序运行效果截图:

 

程序代码实现如下:

 

 

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

 

 

五. 阴影效果
程序运行效果截图:

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

 

六.纹理效果

程序运行效果截图:

程序代码实现如下:

}

 

七. 倾斜效果

程序运行效果截图:

程序代码实现如下:

 

 

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

 

 

八.渐变色效果

程序代码实现如下:

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

 

九. 旋转效果

程序运行效果截图:

程序代码实现如下:

//恢复全局变换矩阵
g.ResetTransform();
}
}

 

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

后记:

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

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

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

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

暂到此...

希望对大家有所帮助.

 

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#错误——“当前线程不再单线程单元中”发布时间:2022-07-10
下一篇:
C#ASCII与字符串间相互转换发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap