Example #1
0
        private void StartInking(NowPlayingState nowPlaying, byte[] imageBytes)
        {
            if (nowPlaying.HasItem && imageBytes != null)
            {
                BuildCast.DataModel.InkNote meme = new BuildCast.DataModel.InkNote(nowPlaying.CurrentEpisode.Key, PlayerService.Current.CurrentTime);

                InkNoteData            = new InkNoteData();
                InkNoteData.ImageBytes = imageBytes;

                ViewModel.GoToInkNote(meme);
            }
        }
Example #2
0
        private async Task LoadExisting(BuildCast.DataModel.InkNote meme)
        {
            using (var db = new LocalStorageContext())
            {
                _data = db.MemeData.Where(l => l.InkMeme == meme.Id).FirstOrDefault();
                if (_data != null)
                {
                    var image = await _data.GetImage(Image_ImageOpened);

                    framergrab.Source = image;
                    await LoadInk(_data.Ink);
                }
            }
        }
Example #3
0
        private async Task <bool> Save_InkedImagetoStream(IRandomAccessStream stream)
        {
            bool hasXamlOverlay = xamloverlay.Children.Count > 0;

            if (_data == null)
            {
                _data = Player.InkNoteData;
            }

            if (_data == null)
            {
                return(false);
            }

            using (var imageStream = await _data.GetImageStream())
            {
                CanvasDevice device = CanvasDevice.GetSharedDevice();

                var image = await CanvasBitmap.LoadAsync(device, imageStream);

                using (var renderTarget = new CanvasRenderTarget(device, (int)inkingCanvas.ActualWidth, (int)inkingCanvas.ActualHeight, 96))
                {
                    using (CanvasDrawingSession ds = renderTarget.CreateDrawingSession())
                    {
                        ds.Clear(Colors.White);

                        ds.DrawImage(image, new Rect(0, 0, (int)inkingCanvas.ActualWidth, (int)inkingCanvas.ActualHeight));

                        if (hasXamlOverlay)
                        {
                            await DrawXamlOverlay(device, renderTarget, ds);
                        }

                        ds.Units = CanvasUnits.Pixels;
                        ds.DrawInk(inkingCanvas.InkPresenter.StrokeContainer.GetStrokes());
                    }

                    await renderTarget.SaveAsync(stream, CanvasBitmapFileFormat.Png);
                }
            }

            return(true);
        }