您的位置:首页 > 编程语言 > ASP

ASP.NET 生成图片水印、验证码文字的字体

2020-03-01 21:41 260 查看

         在ASP.NET生成图片时中常使用到生成水印文字,生成验证码文字等,这些图片上的文字有时候我们需要设置更好看的字体,实现的方法一般是调用服务器 C:/windows/fonts/ 目录下的字体,对于服务器中没有的字体就需要我们在服务器上面安装,显然不是很方便。另外一中方法是:把字体库文件放在我们的项目中,生成图片中的文字时调用项目的字体库。但是,这种方法使用具有局限性,对于WEB页面的字体就无能为力了。关于WEB页面调用自定义的字体,详见上面的《一、让用户使用我设计的网页字体》 。

a.      下载字体文件,并加入到项目中,例如:有一个项目的登录验证码功能用到的字体是“Andy”字体,这里就需要下载Andy的字体库,“andyb.ttf”。

b.      把字体库加入到项目中,例如:加入到根目录下的“Share/Fonts/”下面。

c.      在生成验证码的后台文件中,创建的字体,这里创建一个方法来生成一个自定义的字体。

/// <summary>
/// 创建一个定义的字体,这个字体是程序级别创建的
/// </summary>
/// <returns>返回:字体,这里为Andy字体</returns>
private Font CreateFamily()
{
PrivateFontCollection pfc = new PrivateFontCollection();
//string fontpath = HttpRuntime.AppDomainAppPath + "Share/Fonts/andyb.ttf";    //这种方法也能获取到项目的绝对路径,所以还要加上文件的相对路径
string fontpath = System.Web.HttpContext.Current.Server.MapPath("~/Share/Fonts/andyb.ttf");  //获取字体路径
//pfc.AddFontFile(@"C:/windows/fonts/andyb.ttf");  //这种方法是获取服务器中的字体,不过需要服务器字体库中存在改字体文件
pfc.AddFontFile(fontpath);
//添加到字体
Font font = new System.Drawing.Font(pfc.Families[0], 20, System.Drawing.FontStyle.Bold);    //创建一个自定义的字体
return font;
}

关键三个地方:

1.PrivateFontCollection 类命名空间在 System.Drawing.Text 下面这个方面提供一个创建字体库的数组对象,

2.需要通过绝对路径获取字体库的路径这里提供两种方法:

Application.StartupPath+"Share/Fonts/andyb.ttf"

System.Web.HttpContext.Current.Server.MapPath("~/Share/Fonts/andyb.ttf")

3.创建一个Font字体

注意:这种方法也可以获取C:/windows/fonts/ 目录下面的字体,前提是字体存在的情况下。
  • 点赞
  • 收藏
  • 分享
  • 文章举报
z0106551513 发布了0 篇原创文章 · 获赞 0 · 访问量 530 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: