コード例 #1
0
        public Bitmap BuildCloud(IEnumerable <string> lines, int count, IDrawingConfig drawingConfig)
        {
            var mostFrequenWords  = filter.Filter(lines);
            var frequentWords     = frequencyAnalyzer.GetFrequencyDict(mostFrequenWords).Take(count);
            var mostFrequentWords = frequentWords
                                    .OrderByDescending(x => x.Value)
                                    .Take(count)
                                    .ToDictionary(x => x.Key, x => x.Value);

            mostFrequentWords = dictionaryNormalizer.NormalizeDictionary(mostFrequentWords);
            var rects = CalculateRectsForWords(mostFrequentWords, drawingConfig.Font);

            return(cloudDrawer.DrawMap(rects, drawingConfig));
        }
コード例 #2
0
        public Bitmap DrawMap(IEnumerable <WordInRect> words, IDrawingConfig config)
        {
            var mainRect        = layoutNormalizer.GetMainRect(words);
            var normalizedWords = layoutNormalizer.ShiftLayout(words, mainRect);
            var bitmap          = new Bitmap(mainRect.Width, mainRect.Height);
            var graphics        = Graphics.FromImage(bitmap);

            foreach (var word in normalizedWords)
            {
                graphics.DrawString(word.Word, word.Font, config.GenerateBrush(word), word.Rect,
                                    StringFormat.GenericTypographic);
            }
            return(new Bitmap(bitmap, config.Size));
        }