public static Document ToDocument(this Parser.SerializableDocument serializableDocument) { Document document = new Document(serializableDocument.Width, serializableDocument.Height) { Layers = serializableDocument.ToLayers(), Swatches = new ObservableCollection <Color>(serializableDocument.Swatches.Select(x => Color.FromArgb(x.Item1, x.Item2, x.Item3, x.Item4))) }; return(document); }
public static Parser.SerializableDocument ToSerializable(this Document document) { Parser.SerializableDocument serializable = new Parser.SerializableDocument { Width = document.Width, Height = document.Height, Layers = document.Layers.Select(x => x.ToSerializable()).ToArray(), Swatches = document.Swatches.Select(x => new Tuple <byte, byte, byte, byte>(x.A, x.R, x.G, x.B)).ToArray() }; return(serializable); }
public static ObservableCollection <Layer> ToLayers(this Parser.SerializableDocument serializableDocument) { ObservableCollection <Layer> layers = new ObservableCollection <Layer>(); for (int i = 0; i < serializableDocument.Layers.Length; i++) { Parser.SerializableLayer serLayer = serializableDocument.Layers[i]; Layer layer = new Layer(serLayer.Name, BitmapUtils.BytesToWriteableBitmap(serLayer.Width, serLayer.Height, serLayer.BitmapBytes)) { IsVisible = serLayer.IsVisible, Offset = new Thickness(serLayer.OffsetX, serLayer.OffsetY, 0, 0), Opacity = serLayer.Opacity }; layers.Add(layer); } return(layers); }