public Image ReadImageFromDatabase(ThumbnailEntry thumbnail) { if (thumbnail.Length == 0) { return(null); } lock (_fileOperationLock) { if (_fileStream == null) { _fileStream = File.Open(_fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); } _fileStream.Lock(thumbnail.FilePosition, thumbnail.Length); _fileStream.Position = thumbnail.FilePosition; var sr = new BinaryReader(_fileStream); Image img = _imageManager.LoadFromByteArray(sr.ReadBytes(thumbnail.Length)); _fileStream.Unlock(thumbnail.FilePosition, thumbnail.Length); return(img); } }
public ImageViewMapperProfile() { ThumbnailDatabase.CreateMapping(this); ThumbnailEntry.CreateMapping(this); }
/// <summary> /// Verifies that the file does excist and that the physical file has not been written to after the thumbnail was /// created. /// Assumes access to the directory /// </summary> /// <param name="thumbnailEntry"></param> /// <returns>True if the thumbnail is up to date and the original file exists</returns> public static bool IsUpToDate(ThumbnailEntry thumbnailEntry) { var fileInfo = new FileInfo(thumbnailEntry.Directory + thumbnailEntry.FileName); return(fileInfo.Exists && fileInfo.LastWriteTime == thumbnailEntry.SourceImageDate); }