private static void AddJpegImage(ISketchData sketchData, ZipOutputStream zipStream) { var jpegEntry = new ZipEntry("sketch.jpeg") { DateTime = DateTime.UtcNow }; zipStream.PutNextEntry(jpegEntry); using var memoryStream = new MemoryStream(); InkRenderer.RenderImage(sketchData.Width, sketchData.Height, sketchData.BackgroundColor, sketchData.InkStrokes.ToList(), memoryStream, sketchData.Width); memoryStream.Seek(0, SeekOrigin.Begin); var buffer = new byte[4096]; StreamUtils.Copy(memoryStream, zipStream, buffer); }
/// <summary> /// Update the sketch data /// </summary> /// <param name="sketchData">the sketch data</param> public async void SketchDataUpdated(ISketchData sketchData) { _ = sketchData ?? throw new ArgumentNullException(nameof(sketchData)); // Title = sketchData.Name; var inkCanvasView = InkCanvas.GetInkCanvasView(); Dispatcher.BeginInvokeOnMainThread(delegate { inkCanvasView.BackgroundColor = sketchData.BackgroundColor; InkCanvas.CanvasSize = new Size(sketchData.Width, sketchData.Height); InkCanvas.GetInkCanvasView().InkPresenter.StrokeContainer.Clear(); InkCanvas.GetInkCanvasView().InkPresenter.StrokeContainer.Add(sketchData.InkStrokes); inkCanvasView.InvalidateCanvas(false, true); }); _viewModel.UndoManager.Reset(); await UpdateWebViewAsync().ConfigureAwait(false); }