Пример #1
0
 protected BaseClient(
     TagsCloudSettings cloudSettings,
     Func <TagsCloudGenerator> cloudFactory,
     FileImageSaver saver)
 {
     CloudSettings     = cloudSettings;
     this.cloudFactory = cloudFactory;
     this.saver        = saver;
 }
Пример #2
0
 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);
Пример #3
0
 public ConsoleClient(
     string[] args,
     TagsCloudSettings cloudSettings,
     Func <TagsCloudGenerator> cloudFactory,
     FileImageSaver saver) :
     base(cloudSettings, cloudFactory, saver)
 {
     this.args = args;
 }
Пример #4
0
        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);
            }
        }
Пример #5
0
 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();
 }
Пример #6
0
        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);
                }
            }
        }
Пример #7
0
 public TagsCloudDrawer(IRectanglesLayouter layouter, TagsCloudSettings tagsCloudSettings)
 {
     this.layouter          = layouter;
     this.tagsCloudSettings = tagsCloudSettings;
 }
Пример #8
0
 protected Image CreateTagsCloud(TagsCloudSettings settings)
 {
     return(cloudFactory().Create(settings));
 }
Пример #9
0
 protected Result <Bitmap> CreateTagsCloud(TagsCloudSettings settings)
 {
     return(Result.Of(cloudFactory)
            .Then(cloud => cloud.Create(settings)));
 }
Пример #10
0
 internal static Bitmap Visualize(this IEnumerable <string> tags,
                                  TagsCloudSettings settings, IVisualizer visualizer) =>
 visualizer.Visualize(tags, settings);