public MemoryStream Generate(string firstName, string lastName, int height = 64, int width = 64, int fontSize = 28) { var avatarString = $"{firstName[0]}{lastName[0]}".ToUpper(); var bgColour = _colorGenerator.GetNextColor(); var bmp = new Bitmap(height, width); var sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; var font = new Font("Arial", fontSize, FontStyle.Bold, GraphicsUnit.Pixel); var graphics = Graphics.FromImage(bmp); graphics.Clear(bgColour); graphics.SmoothingMode = SmoothingMode.AntiAlias; graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; graphics.DrawString(avatarString, font, new SolidBrush(Color.WhiteSmoke), new RectangleF(0, 0, height, width), sf); graphics.Flush(); var ms = new MemoryStream(); bmp.Save(ms, ImageFormat); return(ms); }
public List <WordForCloud> Generate(List <string> words) { var wordFrequency = GetWordsFrequency(words) .OrderBy(x => x.Value) .Reverse() .ToList(); var maxFrequency = wordFrequency.FirstOrDefault().Value; return(wordFrequency .Select(x => GetWordForCloud(fontName, maxFontSize, colorGenerator.GetNextColor(), x.Key, x.Value, maxFrequency)) .ToList()); }