c#中的单个图像到视频
Single image to video in c#
我一直在VS中使用Aforge来操作图像,现在我需要将单个图像转换为视频。我的代码有效,但只要我添加图像路径,它就会输出一个空视频。我想这是非常简单的事情,但由于我对 c# 几乎一无所知,所以我需要帮助这个过程的每一步。
有人可以帮我解决这个问题吗?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AForge;
using AForge.Video.FFMPEG;
namespace VideoWriter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int width = 720;
int height = 402;
VideoFileWriter writer = new VideoFileWriter();
writer.Open(@"C:\pathtovideo\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);
Bitmap image = new Bitmap(width, height);
// THIS ONE NEXT IS WHAT I HAVE BEEN TRYING, BUT I GUESS IS VERY WRONG
//Bitmap image = new Bitmap(@"C:\pathtoimage\myimage.jpg");
for (int i = 0; i < 250; i++)
{
writer.WriteVideoFrame(image);
}
writer.Close();
}
}
顺便说一句,欢迎使用不包括库或框架的任何其他解决方案。我只是使用 Aforge,因为我相信这是最简单的方法。
提前致谢
我可以使用以下代码从 JPEG 图像创建视频:
int width = 720;
int height = 402;
VideoFileWriter writer = new VideoFileWriter();
writer.Open(@"C:\Temp\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);
Bitmap originalImage = new Bitmap(@"C:\Temp\myimage.jpg");
Bitmap resizedImage = new Bitmap(originalImage, new Size(width, height));
for (int i = 0; i < 250; i++)
{
writer.WriteVideoFrame(resizedImage);
}
writer.Close();
您需要调整图像大小以匹配视频帧的大小。
我一直在VS中使用Aforge来操作图像,现在我需要将单个图像转换为视频。我的代码有效,但只要我添加图像路径,它就会输出一个空视频。我想这是非常简单的事情,但由于我对 c# 几乎一无所知,所以我需要帮助这个过程的每一步。
有人可以帮我解决这个问题吗?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AForge;
using AForge.Video.FFMPEG;
namespace VideoWriter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int width = 720;
int height = 402;
VideoFileWriter writer = new VideoFileWriter();
writer.Open(@"C:\pathtovideo\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);
Bitmap image = new Bitmap(width, height);
// THIS ONE NEXT IS WHAT I HAVE BEEN TRYING, BUT I GUESS IS VERY WRONG
//Bitmap image = new Bitmap(@"C:\pathtoimage\myimage.jpg");
for (int i = 0; i < 250; i++)
{
writer.WriteVideoFrame(image);
}
writer.Close();
}
}
顺便说一句,欢迎使用不包括库或框架的任何其他解决方案。我只是使用 Aforge,因为我相信这是最简单的方法。
提前致谢
我可以使用以下代码从 JPEG 图像创建视频:
int width = 720;
int height = 402;
VideoFileWriter writer = new VideoFileWriter();
writer.Open(@"C:\Temp\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);
Bitmap originalImage = new Bitmap(@"C:\Temp\myimage.jpg");
Bitmap resizedImage = new Bitmap(originalImage, new Size(width, height));
for (int i = 0; i < 250; i++)
{
writer.WriteVideoFrame(resizedImage);
}
writer.Close();
您需要调整图像大小以匹配视频帧的大小。