Пример #1
0
        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));
        }
Пример #2
0
        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;
        }