目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸懵逼的我,只能百度+谷歌看看有没啥解决方案,好在网上资料也多,.NET Core下的图像处理还是有些开源库的,我目前使用的其中一个:SkiaSharp,介绍反正大家自己网上找找都有,下面就用该库实现一个文字头像的小功能
二、简单的设计要求
对于输入的名字得解析(中文、英文)
图片背景色随机会换
文字要居中(废话,不居中不是丑爆了)
三、具体实现
1、解析姓名信息
private String ResolveName(String imageText) { imageText.Replace("?", "").Replace(":", "").Replace("?", "").Replace("*", "").Replace("<", "").Replace(">", "").Replace(@"/", "").Replace(@"\", "").Replace(@"|", "").Replace("\"", "");//去除路径不支持的信息 imageText = imageText.Trim(' ');//去除空格信息 String temp2 = imageText.Substring(0, 1);//根据第一位的数据判断是走英文规则还是中文规则,都不是的话就是取前两位 if (RegexLib.IsChineseCharacter(temp2)) { //UserName = UserName.Trim(' '); if (imageText.Length > 2 & imageText.Length <= 3) { imageText = imageText.Substring(1, 2); } else if (imageText.Length >= 3) { imageText = imageText.Substring(imageText.Length - 2, 2); } } else if (RegexLib.IsEnglishCharacter(temp2)) { String[] temp1 = imageText.Split(' '); if (temp1.Length == 2) { imageText = (temp1[0].Substring(0, 1) + temp1[1].Substring(0, 1)).ToUpper(); } else { if (imageText.Length > 2) { imageText = imageText.Substring(0, 2).ToUpper(); } } } else { if (imageText.Length > 2) { imageText = imageText.Substring(0, 2); } } imageName = imageText; return imageName; }