예제 #1
0
 public async Task <Bitmap> RenderThumbnail(ScannedImage.Snapshot snapshot, int size)
 {
     using (var bitmap = await scannedImageRenderer.Render(snapshot, snapshot.TransformList.Count == 0 ? 0 : size *OVERSAMPLE))
     {
         return(RenderThumbnail(bitmap, size));
     }
 }
예제 #2
0
 public async Task <Stream> RenderToStream(ScannedImage.Snapshot snapshot)
 {
     using (var transformed = await Render(snapshot))
     {
         var stream = new MemoryStream();
         var format = transformed.PixelFormat == PixelFormat.Format1bppIndexed
             ? ImageFormat.Png
             : snapshot.Source.FileFormat ?? (snapshot.Source.RecoveryIndexImage.HighQuality ? ImageFormat.Png : ImageFormat.Jpeg);
         transformed.Save(stream, format);
         return(stream);
     }
 }
예제 #3
0
 public async Task <Bitmap> Render(ScannedImage.Snapshot snapshot, int outputSize = 0)
 {
     return(await Task.Factory.StartNew(() =>
     {
         var bitmap = snapshot.Source.FileFormat == null
             ? pdfRenderer.Render(snapshot.Source.RecoveryFilePath).Single()
             : new Bitmap(snapshot.Source.RecoveryFilePath);
         if (outputSize > 0)
         {
             bitmap = ShrinkBitmap(bitmap, outputSize);
         }
         return Transform.PerformAll(bitmap, snapshot.TransformList);
     }));
 }