一、C#实现中文转颜色 - 实现根据名字自动生成头像
原理说明:
由于名字图像是自动生成,背景颜色不一样,可以考虑一下几种方法:
1)使用随机数来自动生成一个16进制颜色字符串,作为头像的背景颜色;
2)获取名字的第一个字,转换成16进制文字颜色字符串,作为头像背景颜色;
注:推荐第二个方案,第二个的话,可以让同一个姓的用户,北京颜色相同。
代码整理如下:
/// <summary>
/// 常用图片,操作方法整理
/// </summary>
public class ImageHelper
{
#region 姓名生成图片处理
/// <summary>
/// 获取姓名对应的颜色值
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static string GetNameColor(string name)
{
if (string.IsNullOrEmpty(name) || name.Length <= 0)
throw new Exception("name不能为空");
//获取名字第一个字,转换成 16进制 图片
string str = "";
foreach (var item in name)
{
str += Convert.ToUInt16(item);
}
if (str.Length < 4)
{
str += new Random().Next(100, 1000);
}
string color = "#" + str.Substring(1, 3);
return color;
}
/// <summary>
/// 获取姓名对应的图片
/// </summary>
/// <param name="name"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <returns></returns>
public static Bitmap GetNameImage(string name,int width=132,int height=132)
{
string color = GetNameColor(name);
string firstName = name.Substring(0,1);
Bitmap img = new Bitmap(width,height);
Graphics g = Graphics.FromImage(img);
Brush brush = new SolidBrush(ColorTranslator.FromHtml(color));
g.FillRectangle(brush,0,0,width,height);
//填充文字
Font font = new Font("微软雅黑", 50);
SizeF firstSize= g.MeasureString(firstName,font);
g.DrawString(firstName,font,Brushes.White,new PointF((img.Width - firstSize.Width)/2, (img.Height - firstSize.Height) / 2));
g.Dispose();
return img;
}
/// <summary>
/// 保存图片到磁盘
/// </summary>
/// <param name="name"></param>
/// <param name="targetFile"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <returns></returns>
public static Bitmap SaveNameImage(string name, string targetFile, int width = 132, int height = 132)
{
Bitmap img = GetNameImage(name,width,height);
img.Save(targetFile,Drawing.Imaging.ImageFormat.Jpeg);
img.Dispose();
return img;
}
#endregion
}
测试结果:
static void ImgTest2()
{
ImageHelper.SaveNameImage("张三丰", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\1.jpg");
ImageHelper.SaveNameImage("李四", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\2.jpg");
ImageHelper.SaveNameImage("王五", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\3.jpg");
ImageHelper.SaveNameImage("1234", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\4.jpg");
ImageHelper.SaveNameImage("a", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\5.jpg");
ImageHelper.SaveNameImage("b", @"D:\QLTest\Core3_Solution\Core3Test1\Core3Test1\bin\Debug\6.jpg");
}

更多:
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
| 本博客Android APP 下载 |
![]() |
| 支持我们就给我们点打赏 |
![]() |
| 支付宝打赏 支付宝扫一扫二维码 |
![]() |
| 微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!





浙公网安备 33010602011771号