public PhotoItem(string fileName) { if (fileName == null) { throw new ArgumentNullException("fileName"); } _image = new Bitmap(); _itemState = PhotoItemState.Empty; _sourceFileName = fileName; _exifAngle = 0; }
public void LoadImage() { CheckDisposedState(); if (_hddFileName.Length > 0) { _image.Load(_hddFileName); } else { _hddFileName = PhotoItem.Cache.CacheSource(this); _image.Load(_hddFileName); _itemState = PhotoItemState.Cached; } RotateImage(); }
public void CreateCacheData() { if (_image == null) { throw new ArgumentNullException("_image"); } CheckDisposedState(); _exifThumbnail = _image; _hddFileName = PhotoItem.Cache.CacheThumbnail(this); _sourceFileName = _hddFileName; _imageSize.Width = _image.Width; _imageSize.Height = _image.Height; _itemState = PhotoItemState.Cached; }
public void LoadImage(System.Drawing.Size size) { CheckDisposedState(); lock (this) { if (_itemState == PhotoItemState.Cached) { if (size.Width > _image.Width && size.Height > _image.Height) { _image.LoadThumbnail(_hddFileName, (int)size.Width, (int)size.Height); RotateImage(); } else { int resultWidth = size.Width, resultHeight = size.Height; Resize.CalculateProportionalDimensions(_image.Width, _image.Height, ref resultWidth, ref resultHeight, Aurigma.GraphicsMill.Transforms.ResizeMode.Fit); if (_image.Width != resultWidth || _image.Height != resultHeight) { _image.Transforms.Resize(resultWidth, resultHeight); } } } else if (_itemState == PhotoItemState.Empty) { _hddFileName = PhotoItem.Cache.CacheSource(this); _image.LoadThumbnail(_hddFileName, (int)size.Width, (int)size.Height); using (IFormatReader formatReader = FormatManager.CreateFormatReader(_hddFileName)) using (IFrame frame = formatReader.LoadFrame(0)) { _imageSize = new Size(frame.Width, frame.Height); } RotateImage(); _itemState = PhotoItemState.Cached; } else { ExecutionEngine.EventLogger.Write("Unknown PhotoItem state"); } } }