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()); }