Exemplo n.º 1
0
        public void CreateMosaic(string source, string fillDirectory, string output, string indexFile = null)
        {
            var sourceBitmap = (Bitmap)Image.FromFile(source);

            // Get fill provider
            IFillProvider <IImageData> fillProvider = new RecursiveDirectoryFillProvider(fillDirectory, _fillRegionCreationStrategy, _averageGreyRegionCreationStrategy, _imageLoader);

            // Get match provider
            ImageMatchProvider matchProvider = _imageMatchProviderFactory.GetImageMatchProvider(fillProvider, _imageDataSorter);

            // Get source provider
            var sourceProvider = new ImageDataBuilder(
                source,
                _sourceRegionCreationStrategy,
                _averageGreyRegionCreationStrategy,
                _imageLoader);

            // Reconstruct
            var imageBuilder           = new ReconstructedImageBuilder(sourceBitmap.Width, sourceBitmap.Height, _imageLoader, NewImagePercentage);
            IList <ImageMatch> matches =
                matchProvider.GetMatches(_imageDataSorter.GetSortedImageDatas(sourceProvider.GetSourceDatas())).ToList();

            imageBuilder.ApplyMatches(matches);
            imageBuilder.SaveAs(output);

            // Build stats
            var statsBuilder = new MatchStatisticBuilder(_imageLoader);

            statsBuilder.WriteStatistics(matches);
        }
        private IEnumerable <ImageData> GetImageDatasFromFile(string path)
        {
            var imageDataBuilder = new ImageDataBuilder(path, _fillRegionCreationStrategy, _averageGryRegionCreationStrategy, _imageLoader);

            return(imageDataBuilder.GetSourceDatas());
        }