我有一個非常複雜的Storyboard
當一個「活」窗口中運行它完美的作品,但我有麻煩手動動畫這個故事板來獲得一幀一幀的動畫,我可以保存到個人PNG文件。所有生成的圖像都是第一個動畫幀。保存視頻/故事板
我已經看到this,this,this並最終是this。也有this MSDN sample,但他們都談論動畫單一DependencyProperty
。我需要的是能夠逐幀瀏覽具有複雜的Storyboard
,而不僅僅是一個DP。
我到處搜查沒有任何運氣。我的實驗也都失敗了。任何幫助表示讚賞。這是一些非功能性代碼。
storyboard.Begin(grid, true);
//storyboard.Pause();
//var clock = storyboard.CreateClock();
//clock.Controller.Pause();
var secs = Enumerable.Range(0, totalFrames).Select(t => (((double)t)/FPS));
grid.Measure(new Size(480, 340));
grid.Arrange(new Rect(grid.DesiredSize));
foreach (var sec in secs)
{
//clock.Controller.SeekAlignedToLastTick(TimeSpan.FromSeconds(sec), TimeSeekOrigin.BeginTime);
storyboard.SeekAlignedToLastTick(TimeSpan.FromSeconds(sec), TimeSeekOrigin.BeginTime);
grid.InvalidateVisual();
grid.UpdateLayout();
var filename = Path.Combine(tempFolder, string.Format("image{0}.png", sec));
var rtb = new RenderTargetBitmap((int) grid.ActualWidth, (int) grid.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(grid);
var png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
using (var stream = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite))
{
png.Save(stream);
}
}
嗨嗨...我陷入了類似的問題。我爲一個立方體設計了一個沿Z軸平移的動畫。現在我想製作動畫的視頻,但它只是顯示單個圖像。有趣的是,相同的代碼可以使簡單動畫的視頻像橢圓在畫布上移動。我知道你發佈這個版本已經有2年多了,但如果你能分享一些示例代碼或指引我朝着正確的方向發展,這將會非常有幫助。 – zizouraj 2014-10-08 11:05:12