public ProcessSteps GetProcessSteps(ImageFile imageFile) { string processId = GetProcessId(imageFile); if (processId == null) { return(new ProcessSteps(new List <IApplier>())); } var config = _configs.FirstOrDefault(c => c.Id.ToLower() == processId.ToLower()); var list = new List <IApplier>(); var builder = new ApplierBuilder(); foreach (var step in config.Steps) { list.Add(builder.CreateApplier(step)); } return(new ProcessSteps(list)); }
private void ShowUpdatedPreviewImage() { if (SelectedProcessFile?.Steps == null) { PreviewImage.Source = null; return; } var testImageMemoryStream = new MemoryStream(); Properties.Resources.TestImage.Save(testImageMemoryStream, ImageFormat.Jpeg); testImageMemoryStream.Seek(0, SeekOrigin.Begin); var exampleImage = new EditableImage("test.jpg", new ImageMagick.MagickImage(testImageMemoryStream)); var builder = new ApplierBuilder(); foreach (var step in SelectedProcessFile.Steps) { var applier = builder.CreateApplier(step); exampleImage = applier.Apply(exampleImage); } var memoryStream = new MemoryStream(); memoryStream.Seek(0, SeekOrigin.Begin); exampleImage.Image.Write(memoryStream, ImageMagick.MagickFormat.Jpg); memoryStream.Seek(0, SeekOrigin.Begin); var imageSource = new BitmapImage(); imageSource.BeginInit(); imageSource.StreamSource = memoryStream; imageSource.EndInit(); PreviewImage.Source = imageSource; }