Aspose.Slides.net 26.9.0で、PresentationAnimationGeneratorとPresentationPlayerとffmpegを用いてスライドのアニメーションを動画化しています。
using Aspose.Slides.Export;
using Aspose.Slides;
public class PowerPointToMovie
{
public async Task SaveAsPageGif(string outputFolder, string filePath, int page)
{
Aspose.Slides.Presentation presentation = new(filePath);
// MP4出力オプションを設定
int fps = 15;
List<string> frames = new List<string>();
var slide = presentation.Slides[page];
// PresentationAnimationsGeneratorとPresentationPlayerを使用
using (var animationsGenerator = new PresentationAnimationsGenerator(presentation))
{
using (var player = new PresentationPlayer(animationsGenerator, fps))
{
// フレームごとの処理
player.FrameTick += (sender, args) =>
{
var slideFrame = args.GetFrame();
string frame = $"frame_{sender.FrameIndex:D4}.png";
double elapsedMs = (double)sender.FrameIndex / fps * 1000;
slideFrame.Save(Path.Combine(outputFolder, string.Format("{0:000000}", page), frame));
frames.Add(frame);
Console.WriteLine($"フレーム {sender.FrameIndex} を生成しました。 ページ: {page}");
};
List<ISlide> slides = new List<ISlide>();
slides.Add(slide);
// アニメーションを実行してフレームを生成
animationsGenerator.Run(slides);
}
}
}
}
その際、グラフのアニメーションをつけて動画化しようとした時に、「系列別(EffectChartMajorGroupingType.BySeries)」「項目別(EffectChartMajorGroupingType.ByCategory)」のアニメーションが反映されません。グラフ全体が何度も表示されるようなアニメーションになってしまいます。
問い合わせ用.zip (2.1 MB)
入力したPowerPointと、出力されたframe画像、それをffmpegで動画化したものを添付します。
以上ご確認のほどよろしくお願いします。