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