簡體   English   中英

在C#中導出帶有圖像的視頻

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM