コード例 #1
0
        /// <summary>Renders the associated <see cref="frame" /> into an image. You can specify <paramref name="width" /> and
        ///     <paramref name="height" />.</summary>
        /// <param name="frame">The frame which needs to be converted into an image.</param>
        /// <param name="width">The width of the rendered image.</param>
        /// <param name="height">The height of the rendered image.</param>
        public static Task <BitmapSource> ConvertTo_RenderedImage(this IFrame frame, double width = 1920D, double height = 1080D)
        {
            var t = new Task <BitmapSource>(() =>
            {
                var presenter = new FramePresenter {
                    Item = frame, Width = width, Height = height
                };

                presenter.Measure(presenter.DesiredSize);
                presenter.Arrange(new Rect(presenter.DesiredSize));
                presenter.UpdateLayout();

                var img = presenter.VisualChilds_By_Condition <Image>(i => true);
                foreach (var image in img)
                {
                    BindingOperations.ClearBinding(image, Image.SourceProperty);
                    image.Source = ((IFrameImage)image.DataContext).FrameItemImage;
                }
                presenter.StartVideos(TimeSpan.FromSeconds(5));
                presenter.UpdateLayout();

                var bitmapSource = presenter.ConvertTo_Image();
                bitmapSource.Freeze();
                return(bitmapSource);
            }, TaskCreationOptions.LongRunning);

            t.Start(StaTaskScheduler.Default);
            return(t);
        }
コード例 #2
0
 protected override void AddNewFrameDataRow(FramePresenter fr)
 {
     //Create a new DataRow for the new frame
     var dr = this.DataView.Table.NewRow();
     dr.BeginEdit();
     dr[SkaaGameDataLib.Util.DataRowExtensions.ResIdxFrameNameColumn] = fr.Name;
     dr[SkaaGameDataLib.Util.DataRowExtensions.ResIdxFrameOffsetColumn] = fr.BitmapOffset;
     dr.EndEdit();
     this.DataView.Table.Rows.Add(dr);
 }
コード例 #3
0
        protected override void AddNewFrameDataRow(FramePresenter fr)
        {
            //todo: Need data for the other SFRAME columns
            throw new NotImplementedException();

            //Create a new DataRow for the new frame
            var dr = this.DataView.Table.NewRow();
            dr.BeginEdit();
            dr[SkaaGameDataLib.Util.DataRowExtensions.SprFrameNameColumn] = fr.Name;
            dr[SkaaGameDataLib.Util.DataRowExtensions.SprFrameOffsetColumn] = fr.BitmapOffset;
            dr.EndEdit();
            this.DataView.Table.Rows.Add(dr);
        }