"라이브"창에서 실행할 때 완벽하게 작동하는 매우 복잡한 Storyboard
이 있지만이 스토리 보드를 수동으로 애니메이션화하여 개별적으로 저장할 수있는 프레임 별 애니메이션을 얻는 데 어려움이 있습니다. PNG 파일. 생성 된 이미지는 모두 첫 번째 애니메이션 프레임입니다.WPF 애니메이션/스토리 보드에서 비디오 저장
나는 this, this, this 및 궁극적으로는 this입니다. this MSDN sample도 있지만 모두 DependencyProperty
단일 애니메이션에 대해 이야기합니다. 내가 원했던 것은 단지 하나의 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