【发布时间】:2021-09-16 00:23:03
【问题描述】:
我正在尝试将图像文件夹转换为可以播放和编辑帧的视频格式,或者只是遍历文件夹并显示它们。我正在使用 VS、C#、WPF 和 .NET 4.7.2。
该文件夹还有一个名为“files.txt”的 .txt 文档,其中逐行包含文件夹中的所有文件。
示例(以行分隔,而不是空格)-
" frame_000000.jpg frame_000001.jpg frame_000002.jpg frame_000003.jpg frame_000004.jpg frame_000005.jpg ... "
当我将文件夹放入应用程序时,它开始运行。
这是我目前所拥有的。
using System;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Media.Imaging;
namespace WpfApp2
{
public partial class MainWindow : Window
{
public static string filename { get; set; }
public static string imageName { get; set; }
public MainWindow()
{
InitializeComponent();
}
public void UpdateImage()
{
ImportImage.Source = new BitmapImage(new Uri(imageName));
}
public void FileDropStackPanel_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
filename = Path.GetFullPath(files[0]);
GetFileName();
}
}
public void GetFileName()
{
listFilesInDirectory(filename);
void listFilesInDirectory(string workingDirectory)
{
string[] filePaths = Directory.GetFiles(workingDirectory);
if (filePaths.Contains(filename + @"\files.txt"))
{
string textFile = filename + @"\files.txt";
string[] lines = File.ReadAllLines(textFile);
for (int x = 0; x < lines.Length; x++)
{
imageName = filename + @"\" + lines[x];
UpdateImage();
}
}
}
}
}
}
首先,我必须在代码之外将所有 JPG 文件转换为 PNG。其次,它只显示文件夹中的最后一张图片。
我不知道如何将 JPG 转换为视频格式或以 25 FPS 的速度显示它们。任何帮助将不胜感激!
【问题讨论】:
-
您说您使用外部方法将 JPG 转换为 PNG,但您的应用可以处理 JPG 文件。是哪个?
-
创建视频是一项复杂的任务。最后我看到它是 DirectShow API 的一部分
-
我需要它来处理 JPG 但现在它只能处理 PNG。
-
感谢更新,我是想问为什么"文件夹里还有一个.txt文档里面有文件夹里的所有文件逐行"。你不能只是
Directory.EnumerateFiles()吗?您可以创建一个名为 Inbox 或其他名称的文件夹。祝你好运! :)