public void Save() { using FileStream zipStream = new(FilePath, FileMode.Create, FileAccess.Write); using ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create); using (Stream reportStream = archive.CreateEntry("report.txt").Open()) { reportStream.Write(Encoding.UTF8.GetBytes(ReportText)); } foreach (Document document in ViewModelMain.Current.BitmapManager.Documents) { try { string documentPath = $"{(string.IsNullOrWhiteSpace(document.DocumentFilePath) ? "Unsaved" : Path.GetFileNameWithoutExtension(document.DocumentFilePath))}-{document.OpenedUTC}.pixi".Replace(':', '_'); byte[] serialized = PixiParser.Serialize(document.ToSerializable()); using Stream documentStream = archive.CreateEntry($"Documents/{documentPath}").Open(); documentStream.Write(serialized); } catch { } } }
public byte[] SerializeAndCreate() { SerializableDocument document = Helper.CreateDocument(Size, Layers, false); for (int i = 0; i < Layers; i++) { SKData encoded = bitmaps[i].Encode(SKEncodedImageFormat.Png, 100); document.Layers[i].PngBytes = encoded.AsSpan().ToArray(); } return(PixiParser.Serialize(benchmarkDocument)); }
public void Setup() { benchmarkDocumentBytes = PixiParser.Serialize(Helper.CreateDocument(Size, Layers)); benchmarkDocument = Helper.CreateDocument(Size, Layers); bitmaps = new SkiaSharp.SKBitmap[Layers]; for (int i = 0; i < Layers; i++) { bitmaps[i] = Helper.CreateSKBitmap(Size); } }
public void SerializeAndDeserializeEmptyLayer() { SerializableDocument document = new() { Width = 1, Height = 1 }; document.Layers.Add("Base Layer"); var serialized = PixiParser.Serialize(document); SerializableDocument deserialized = PixiParser.Deserialize(serialized); AssertEqual(document, deserialized); }
public void SerializingAndDeserialzingWorks() { SerializableDocument document = new() { Height = 1, Width = 1 }; document.Swatches.Add(255, 255, 255); SerializableLayer layer = document.Layers.Add("Base Layer", 1, 1, false, 0.5f, 1, 1); layer.PngBytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF }; document.Groups.Add(new SerializableGroup("Base Group")); byte[] serialized = PixiParser.Serialize(document); SerializableDocument deserializedDocument = PixiParser.Deserialize(serialized); AssertEqual(document, deserializedDocument); }
public byte[] Serialize() { return(PixiParser.Serialize(benchmarkDocument)); }
/// <summary> /// Saves editable file to chosen path and returns it. /// </summary> /// <param name="document">Document to be saved.</param> /// <param name="path">Path where to save file.</param> /// <returns>Path.</returns> public static string SaveAsEditableFile(Document document, string path) { PixiParser.Serialize(document.ToSerializable(), path); return(path); }