Example #1
0
 private void UpdatePreviewBox()
 {
     if (previewTimer == null)
     {
         previewTimer = new Timer((obj) =>
         {
             if (previewOutOfDate && !working)
             {
                 working          = true;
                 previewOutOfDate = false;
                 var result       = RotationTransform.Perform((Bitmap)workingImage.Clone());
                 try
                 {
                     Invoke(new MethodInvoker(() =>
                     {
                         if (pictureBox.Image != null)
                         {
                             pictureBox.Image.Dispose();
                         }
                         pictureBox.Image = result;
                     }));
                 }
                 catch (ObjectDisposedException)
                 {
                 }
                 working = false;
             }
         }, null, 0, 100);
     }
     previewOutOfDate = true;
 }
Example #2
0
 public async Task RotateFlip(IEnumerable <int> selection, RotateFlipType rotateFlipType)
 {
     var images = Images.ElementsAt(selection).ToList();
     await Task.Factory.StartNew(() =>
     {
         foreach (ScannedImage img in images)
         {
             lock (img)
             {
                 var transform = new RotationTransform(rotateFlipType);
                 img.AddTransform(transform);
                 var thumb = img.GetThumbnail();
                 if (thumb != null)
                 {
                     img.SetThumbnail(transform.Perform(thumb));
                 }
             }
         }
     });
 }