protected BaseClient( TagsCloudSettings cloudSettings, Func <TagsCloudGenerator> cloudFactory, FileImageSaver saver) { CloudSettings = cloudSettings; this.cloudFactory = cloudFactory; this.saver = saver; }
public Bitmap GenerateTagsCloud(string text, TagsCloudSettings settings) => tokenizer .GetTokens(text) .Where(token => token.WordType != WordType.None) .Where(token => token.Word.Length > 3) .Select(token => token.Word) .Where(word => !settings.StopWords.Contains(word)) .SortByFrequency() .Visualize(settings, visualizer);
public ConsoleClient( string[] args, TagsCloudSettings cloudSettings, Func <TagsCloudGenerator> cloudFactory, FileImageSaver saver) : base(cloudSettings, cloudFactory, saver) { this.args = args; }
public Bitmap Visualize( IEnumerable <string> tags, TagsCloudSettings settings) { var imageSize = settings.ImageSize; var image = new Bitmap(imageSize.Width, imageSize.Height); using (var graphics = Graphics.FromImage(image)) { var imageCenter = new Point(image.Size.Width / 2, image.Size.Height / 2); graphics.Clear(settings.BackgroundColor); DrawTags(tags, graphics, imageCenter, settings); return(image); } }
public Mainform(IRectanglesLayouter[] rectanglesLayouters, TagsCloudHandler tagsCloudHandler, ITagsCloudDrawer drawer, TagsCloudSettings settings, IWordsFilter filter, IEnumerable <IFileReader> fileReaders) { this.tagsCloudHandler = tagsCloudHandler; this.settings = settings; this.filter = filter; this.fileReaders = fileReaders.ToHashSet(); tagsCloudDrawer = drawer; fontFamilies = settings.FontSettings.FontFamilies.ToDictionary(family => family.Name); fontStyles = settings.FontSettings.FontStyles.ToDictionary(style => style.ToString()); layouters = rectanglesLayouters.ToDictionary(c => c.Name); InitializeComponent(); FontFamilyChoice.DataSource = settings.FontSettings.FontFamilies.Select(f => f.Name).ToList(); FontStyleChoice.DataSource = settings.FontSettings.FontStyles.Select(f => f.ToString()).ToList(); AlgorithmChoice.DataSource = rectanglesLayouters.Select(c => c.Name).ToList(); }
private void DrawTags( IEnumerable <string> tags, Graphics graphics, Point imageCenter, TagsCloudSettings settings) { var font = settings.Font; var layouter = new RectangleLayouter(imageCenter, settings.LayoutTrack); foreach (var tag in tags) { var container = GetContainerFor(tag, font, settings.TagContainerPadding, layouter); DrawString(tag, font, graphics, settings.TextColor, container); if (font.Size >= 9) { font = new Font(font.FontFamily, font.Size - 2); } } }
public TagsCloudDrawer(IRectanglesLayouter layouter, TagsCloudSettings tagsCloudSettings) { this.layouter = layouter; this.tagsCloudSettings = tagsCloudSettings; }
protected Image CreateTagsCloud(TagsCloudSettings settings) { return(cloudFactory().Create(settings)); }
protected Result <Bitmap> CreateTagsCloud(TagsCloudSettings settings) { return(Result.Of(cloudFactory) .Then(cloud => cloud.Create(settings))); }
internal static Bitmap Visualize(this IEnumerable <string> tags, TagsCloudSettings settings, IVisualizer visualizer) => visualizer.Visualize(tags, settings);