public EditGroup(Photo parent) { Parent = parent; Effects.CollectionChanged += (sender, e) => NotifyCollectionChanged(sender, e, "Effects"); Effects.Add(new Effect(this)); }
public ICanvasImage Cache(Photo photo, ICanvasImage image, params object[] keys) { if (cachedImage == null) { cachedImage = new CanvasRenderTarget(photo.SourceBitmap.Device, photo.Size.X, photo.Size.Y, 96); } using (var drawingSession = cachedImage.CreateDrawingSession()) { drawingSession.Blend = CanvasBlend.Copy; drawingSession.DrawImage(image); } isCacheValid = true; cacheKeys = keys; return cachedImage; }
public static EditGroup RestoreSuspendedState(Photo parent, BinaryReader reader) { var group = new EditGroup(parent); group.IsEnabled = reader.ReadBoolean(); group.IsEditingRegion = reader.ReadBoolean(); group.ShowRegion = reader.ReadBoolean(); group.RegionSelectionMode = (SelectionMode)reader.ReadInt32(); group.RegionSelectionOperation = (SelectionOperation)reader.ReadInt32(); group.RegionFeather = reader.ReadSingle(); group.RegionDilate = reader.ReadInt32(); group.CanUndo = reader.ReadBoolean(); group.currentRegionMask = reader.ReadByteArray(); group.previousRegionMask = reader.ReadByteArray(); reader.ReadCollection(group.Effects, () => Effect.RestoreSuspendedState(group, reader)); return group; }