.NET Core使用skiasharp文字头像生成方案(基于docker发布)

  目前.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; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppddz.html