コード例 #1
0
 /// <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;
     }
 }
コード例 #2
0
        /// <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;
                }
            }
        }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void FormProgress_Load(object sender, EventArgs e)
 {
     UseWaitCursor = true;
     WorkerResizer.RunWorkerAsync(FilesToResize.ToArray());
 }