То, что я сейчас делаю это:Преобразование растрового изображения в DotImaging формате IImage
- Capture Некоторые снимки экрана
- Копирование всех захваченных Снимки экрана в списке Bitmap: Список
- Сохранить Все скриншоты в Список на жесткий диск
- Feed Все фотографии в каталоге
VideoWriter
ОбъектDotImaging
Библиотека.
Мой исходный код для записи видео составляет:
private void MakeVideo()
{
var saveDialog = new SaveFileDialog { Filter = @"AVI Video(.avi)|*.avi" };
if (saveDialog.ShowDialog() == DialogResult.OK)
{
using (var videoWriter = new VideoWriter(saveDialog.FileName, new Size(_screenWidth, _screenHeight), FrameRate, true))
{
var ir = new ImageDirectoryCapture(_path, "*.jpg");
while (ir.Position < ir.Length)
{
IImage image = ir.Read();
videoWriter.Write(image);
}
videoWriter.Close();
DeleteFiles(); // Deletes The Files from hard drive
}
}
}
То, что я хочу сделать, это:
- Пропустить сохранение скриншотов в жестком диске.
- Передайте список объекту Video Writer напрямую.
Я не могу этого сделать, потому что он принимает путь к каталогу, а не непосредственно изображения. Я хочу сделать это из-за того, что писать все изображения на жесткий диск, а затем делать видео намного медленнее, любые альтернативы DotImaging тоже хороши.
Или, может быть, вы можете сообщить мне, могу ли я разобрать растровые изображения в формате IImage, который принимает в качестве параметра метод VideoWriter.Write()
.
Эта библиотека, кажется, будет построен вокруг файлов, а не потоки, к сожалению. Возможно, вы можете изменить все, что приводит к ['ImageIO.LoadUnchanged'] (https://github.com/dajuric/dot-imaging/blob/320d2cf1301a1b46b1d51abdcc95a7cda72f5ea0/Source/IO/ImageIO.cs), чтобы использовать' byte [] 'или Вместо этого «Стрим». –
Вы смогли найти решение? – CodeIt
Нет, я все еще борется! @COUT – CodeIt