public void ConvertAllAsync(ImageConvertProperties convertProperties,string[] imagesPaths,string[] savePaths)
        {
            CancellationToken cancelTask = _abortOperationTokenSource.Token;

            Task.Factory.StartNew(()=>{
                for (int i = 0; i < imagesPaths.Length && !cancelTask.IsCancellationRequested; i++)
                {
                    ProcessImage(imagesPaths[i],savePaths[i],convertProperties);

                    if(ConvertingProgressChanged != null)
                        ConvertingProgressChanged(i/(double)imagesPaths.Length);
                }
                if(ConvertingComplete != null)
                    ConvertingComplete();
            });
        }
Exemple #2
0
 public MainView()
 {
     InitializeComponent();
     this._convertProperties = new ImageConvertProperties();
     InitializeDefaultComponentsProperties();
 }
        private Image ConvertImage(Image sourceImage, ImageConvertProperties properties)
        {
            Image converted;
            Size size = properties.SizingMode.GetNewSize(sourceImage.Width,sourceImage.Height);

            converted = new Bitmap(size.Width,size.Height);
            using (Graphics g = Graphics.FromImage(converted))
            {
                g.InterpolationMode = properties.interpolationMode;
                g.SmoothingMode =  properties.smoothingMode;
                g.CompositingQuality = properties.compositionQuality;
                g.DrawImage(sourceImage, 0, 0, size.Width, size.Height);
            }
            return converted;
        }
        private void ProcessImage(string source,string destonation, ImageConvertProperties convertProperties)
        {
            Image loadedImage = LoadImage(source);
            Image convertedImage = ConvertImage(loadedImage, convertProperties);
            string savePath = CreateSavePath(destonation,
                convertProperties.imageFormat);

            SaveImage(convertedImage, savePath);
        }