/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormProgress_FormClosing(object sender, FormClosingEventArgs e) { if (WorkerResizer.IsBusy) { WorkerResizer.CancelAsync(); e.Cancel = true; } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void WorkerResizer_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { int Progress = 0; var FileList = new List <FileInfo>((FileInfo[])e.Argument); foreach (var FileToConvert in FileList) { if (WorkerResizer.CancellationPending) { return; } try { Progress = Progress + 1; string NewFolderName = "Resized Images"; var NewFolder = new DirectoryInfo(FileToConvert.Directory.FullName + "\\" + NewFolderName); if (!NewFolder.Exists) { NewFolder.Create(); } var NewFilePath = NewFolder.FullName + "\\" + Path.GetFileNameWithoutExtension(FileToConvert.Name) + "_S" + FileToConvert.Extension; if (new FileInfo(NewFilePath).Exists) { continue; //Add setting to skip or overwrite } var FileOriginal = Image.FromFile(FileToConvert.FullName); var FileConvert = (Image)(new Bitmap(FileOriginal, new Size(FileOriginal.Width / 2, FileOriginal.Height / 2))); WorkerResizer.ReportProgress(Progress, new ProgressData((Image)FileConvert.Clone(), FileToConvert.FullName, FileList.Count)); FileConvert.Save(NewFilePath, FileOriginal.RawFormat); FileOriginal.Dispose(); //is this necessary??? FileConvert.Dispose(); //is this necessary??? } catch (Exception Ex) { e.Result = Ex.Message; return; } } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormProgress_Load(object sender, EventArgs e) { UseWaitCursor = true; WorkerResizer.RunWorkerAsync(FilesToResize.ToArray()); }