[英]Export Video with Images in C#
因此,這是我的程序的概述。 您選擇一個包含圖像的文件夾。 該程序將導入該文件夾(擴展名為.JPG)中的所有圖像。 然后,將這些圖像導出到MP4中。 對於此程序,我不需要可見的時間軸,只是一種導出上述圖像的方法。
我希望能夠設置一個通用的持續時間,並且我希望(如果可能的話)對每張圖像都具有Ken Burns效果,其中該圖像只是按5%-10%的比例放大(這部分不不必每次都更改)。 截至目前,這是我的代碼:
private void btnOpen_Click(object sender, EventArgs e)
{
openFolder.Description = "Open a folder containing pictures for the slideshow!";
if (openFolder.ShowDialog() == DialogResult.OK)
{
var folderPath = openFolder.SelectedPath;
MessageBox.Show(folderPath);
var fileArray = Directory.GetFiles(folderPath, "*.JPG");
float duration = 4;
float startpos = 0;
foreach (var file in fileArray)
{
var filePath = $@"{folderPath}\{file}";
MessageBox.Show(filePath);
//add image to "timeline"
startpos += 4;
}
}
else
{
MessageBox.Show("Next time, select a folder and click open!", "Selection Cancelled", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnExport_Click(object sender, EventArgs e)
{
if (presetList.SelectedIndex == -1)
MessageBox.Show("Please select a preset!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
if (presetList.SelectedItem.ToString() == "720p, 30fps")
{
//export code here
}
else if (presetList.SelectedItem.ToString() == "720p, 60fps")
{
//export code here
}
else if (presetList.SelectedItem.ToString() == "1080p, 30fps")
{
//export code here
}
else if (presetList.SelectedItem.ToString() == "1080p, 60fps")
{
//export code here
}
}
}
到目前為止,我已經查看了一些庫,但是它們似乎都不符合我的需求,而且它們似乎都非常昂貴。
我已經將Magick.net用於類似的任務,並且對於這些事情,它是一個很棒的開源庫。 我知道他們提供了縮放圖像的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.