У вас есть небольшая проблема "XY" - вы задаете неправильный вопрос. Ваш axTimelineControl1
ожидает имя файла изображения. Это подразумевает, что также ожидает, что изображение будет сохранено на диск с таким именем файла.
Но все, что у вас есть, это удаленное изображение за каким-то URL. client.OpenRead(url)
загружает изображение в Stream
, но вы ничего не можете сделать с этим напрямую.
Итак, вы не хотите брать это изображение и помещать его в WinForms Image
объект. Вместо этого вы хотите сохранить это изображение на диск с именем файла, а затем присвоить это имя вашему axTimelineControl1
.
У вас есть несколько вариантов сделать это:
1) Вы можете взять Stream
, полученный от client.OpenRead()
, превратить его в FileStream
и сохранить на диск.
2) Вы можете использовать WebClient
, чтобы загрузить изображение непосредственно на диск, а затем дать имя файла изображения вместо axTimelineControl1
.
Давайте сделаем 2). Это сохранит несколько шагов.
Сначала создайте файл.
string fileName = System.IO.Path.GetTempFileName();
System.IO.File.Create(fileName).Close();
Мы создаем здесь файл «Temp» - он должен рассматриваться как одноразовый. Обратите внимание, что Windows не очищает их для вас, поэтому, как только вы закончите с этим, ваша программа должна удалить его. System.IO.File.Create()
дает нам FileStream
объект, но он нам не нужен, поэтому мы Close()
сразу его заменим, чтобы WebClient
смог записать в наш файл.
Далее , мы загружаем наше изображение и говорим WebClient
, чтобы сохранить его во вновь созданном временном файле:
// Defining my own URL here. Feel free to substitute your own.
string url = "https://derpicdn.net/img/view/2018/5/18/1735426.jpeg";
using (var client = new WebClient())
{
client.DownloadFile(url, fileName);
}
Теперь у нас есть изображение на диске, и мы можем сообщить Mov ie Maker SDK Укажите, где его найти:
float duration = axTimelineControl1.GetMediaDuration(fileName);
axTimelineControl1.AddImageClip(
trackIndex: 1,
fileName: fileName,
clipStartTime: duration,
clipStopTime: 4);
И это должно сработать.
Полный код:
string fileName = System.IO.Path.GetTempFileName();
System.IO.File.Create(fileName).Close();
// Defining my own URL here. Feel free to substitute your own.
string url = "https://derpicdn.net/img/view/2018/5/18/1735426.jpeg";
using (var client = new WebClient())
{
client.DownloadFile(url, fileName);
}
float duration = axTimelineControl1.GetMediaDuration(fileName);
axTimelineControl1.AddImageClip(
trackIndex: 1,
fileName: fileName,
clipStartTime: duration,
clipStopTime: 4);
Не забудьте очистить свой темп файл!