public ScannedImage(Bitmap img, ScanBitDepth bitDepth, bool highQuality, int quality) { var tempFilePath = ScannedImageHelper.SaveSmallestBitmap(img, bitDepth, highQuality, quality, out var fileFormat); transformList = new List <Transform>(); recoveryImage = RecoveryImage.CreateNew(fileFormat, bitDepth, highQuality, transformList); File.Move(tempFilePath, recoveryImage.FilePath); recoveryImage.Save(); }
public FileBasedScannedImage(Bitmap img, ScanBitDepth bitDepth, bool highQuality) { Bitmap baseImage; MemoryStream baseImageEncoded; ScannedImageHelper.GetSmallestBitmap(img, bitDepth, highQuality, out baseImage, out baseImageEncoded, out baseImageFileFormat); baseImageFileName = (_recoveryFileNumber++).ToString("D5", CultureInfo.InvariantCulture) + GetExtension(baseImageFileFormat); baseImageFilePath = Path.Combine(RecoveryFolder.FullName, baseImageFileName); if (baseImage != null) { // TODO: If I'm stuck using PNG anyway, then don't treat B&W specially baseImage.Save(baseImageFilePath, baseImageFileFormat); baseImage.Dispose(); } else { Debug.Assert(baseImageEncoded != null); using (var fs = new FileStream(baseImageFilePath, FileMode.CreateNew)) { baseImageEncoded.Seek(0, SeekOrigin.Begin); baseImageEncoded.CopyTo(fs); } baseImageEncoded.Dispose(); } _recoveryIndexManager.Index.Images.Add(new RecoveryIndexImage { FileName = baseImageFileName, BitDepth = bitDepth, HighQuality = highQuality, TransformList = transformList }); _recoveryIndexManager.Save(); }
public ScannedImage(Bitmap img, ScanBitDepth bitDepth, bool highQuality) { this.bitDepth = bitDepth; ScannedImageHelper.GetSmallestBitmap(img, bitDepth, highQuality, out baseImage, out baseImageEncoded, out baseImageFileFormat); }