public void Dispose() { var commands = _commands.Get(this); if (commands.Any()) { throw new InvalidOperationException( "Deferred references were applied to this reader to track, but they were not applied and executed as expected. This is considered an unexpected, invalid, and corrupt state."); } _reader.Dispose(); }
public Bitmap LoadExifThumbnail() { CheckDisposedState(); if (_exifThumbnail == null) { IFormatReader formatReader = FormatManager.CreateFormatReader(_sourceFileName); try { if (formatReader.MediaFormat == FormatManager.JpegFormat) { JpegReader jpgReader = (JpegReader)formatReader; if (jpgReader.Exif != null && jpgReader.Exif.Contains(ExifDictionary.Thumbnail)) { _exifThumbnail = (Bitmap)jpgReader.Exif[ExifDictionary.Thumbnail]; if (jpgReader.Exif.Contains(ExifDictionary.Orientation)) { _exifAngle = ExifOrientationToAngle(jpgReader.Exif[ExifDictionary.Orientation]); } if (_exifAngle > 0 && !_exifThumbnail.IsEmpty) { _exifThumbnail.Transforms.Rotate(_exifAngle); } return(_exifThumbnail); } } else if (formatReader.MediaFormat == FormatManager.TiffFormat) { TiffReader tiffReader = (TiffReader)formatReader; if (tiffReader.Exif != null && tiffReader.Exif.Contains(ExifDictionary.Thumbnail)) { _exifThumbnail = (Bitmap)tiffReader.Exif[ExifDictionary.Thumbnail]; if (tiffReader.Exif.Contains(ExifDictionary.Orientation)) { _exifAngle = ExifOrientationToAngle(tiffReader.Exif[ExifDictionary.Orientation]); } if (_exifAngle > 0 && !_exifThumbnail.IsEmpty) { _exifThumbnail.Transforms.Rotate(_exifAngle); } return(_exifThumbnail); } } else if (formatReader.MediaFormat == FormatManager.PsdFormat) { PsdReader psdReader = (PsdReader)formatReader; if (psdReader.Exif != null && psdReader.Exif.Contains(ExifDictionary.Thumbnail)) { _exifThumbnail = (Bitmap)psdReader.Exif[ExifDictionary.Thumbnail]; if (psdReader.Exif.Contains(ExifDictionary.Orientation)) { _exifAngle = ExifOrientationToAngle(psdReader.Exif[ExifDictionary.Orientation]); } if (_exifAngle > 0 && !_exifThumbnail.IsEmpty) { _exifThumbnail.Transforms.Rotate(_exifAngle); } return(_exifThumbnail); } } } finally { if (formatReader != null) { formatReader.Close(); formatReader.Dispose(); } } } return(_exifThumbnail); }