Inheritance: Observable
Example #1
0
        public EditGroup(Photo parent)
        {
            Parent = parent;

            Effects.CollectionChanged += (sender, e) => NotifyCollectionChanged(sender, e, "Effects");

            Effects.Add(new Effect(this));
        }
Example #2
0
        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;
        }
Example #3
0
        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;
        }