如何用.NET技术在线生成网站LOGO
2009-05-12 22:25:47来源:未知 阅读 ()
也许大家一看标题就知道,又是老生常谈了,在线生成LOGO其实就是在线生成图片,原理听起来很简单:
1. new一个bitmap或类似之物;
2. 用一个graphic在上边画出你想要的东西;
3. 保存,显示出来,大功告成。
今天要说的是生成中的一些细节问题。没有真正做过,你可能永远也不知道有这样的问题。下边提到的问题和代码,希望对各位有所帮助。
本文的示例程序在http://www.ladysolution.cn/logo.aspx
一。 字体位置。
用不同的字体,如果通过计算字体高度来给字体定位是不精确的,不同的字体有不同的em baseline,而且descending 和 ascending 得出来的值几乎很难用来算精确高度,更麻烦的是如果字体是某人造的,那EM更靠不住,最大的问题是文字上方的空白目前我没有找到适合的公式来计算。我用的是比较笨的办法,计算精确的字体高度:
以下为引用的内容:
private static int[] GetRealFontHeight(Bitmap bmp) { int width, height; int frequency = 2;// higher frequency gets lower performance. int[] ret = new int[2]; Color c; bool goOut = false; for (height = 1; height < bmp.Height - 1; height += frequency) { for (width = 1; width < bmp.Width - 1; width += frequency) { c = bmp.GetPixel(width, height); if (c.Name.Length>0 && c.Name != "0")//got it! { ret[0] = height; goOut = true; break; } else { goOut = false; } } if (goOut) break; } goOut = false; |
以下为引用的内容:
for (height = bmp.Height - 1; height > 1; height -= frequency) { for (width = bmp.Width - 1; width > 1; width -= frequency) { c = bmp.GetPixel(width, height); if (c.Name.Length > 0 && c.Name != "0") { ret[1] = height; goOut = true; break; } else { goOut = false; } } if (goOut) break; } return ret; } |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- .NET随机数函数的生成方法 2020-03-18
- .Net MVC网站中配置文件的读写 2020-02-28
- asp.net网站实现接入QQ登录示例代码 2020-02-17
- MVC网站开发之权限管理篇 2020-02-17
- ASP.NET编程简单实现生成静态页面的方法 2020-02-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash