0

録画機能とサムネイル機能を持​​っています。doRecording()クラスは、dateTime形式の名前でaviファイルを作成します。次に、別のクラスがあります。これgenerateThumbnail()を実行したいのは、doRecording()関数のビデオファイル名と同じサムネイル画像名を付けることです。

private void doRecording()
{
     string ImagePath = Server.MapPath("~\\Videos\\liveRecording2\\");
     string SavingPath = Server.MapPath("~\\Videos\\liveRecording2\\"); //recorded video path
     string VideoName = "ICS-" + String.Format("{0:yyyyMMdd_hhmmss}", DateTime.Now) + ".avi";
     writer.Open(SavingPath + VideoName, 640, 480); //create an AVI file and open it for images adding

     // create frame image
     Bitmap image = new Bitmap(320, 240);
     string[] files = Directory.GetFiles(ImagePath);
     writer.FrameRate = 25;
     int index = 0;
     int failed = 0;
     foreach (var item in files)
     {
        index++;
        try
        {
            image = Image.FromFile(item) as Bitmap;
            //image = cubit.Apply(image);

            for (int i = 0; i < 5; i++)
            {
                writer.AddFrame(image);
            }
         }
         catch
         {
            failed++;
         }
         //this.Text = index + " of " + files.Length + ". Failed: " + failed;
     }
     writer.Close();
     writer.Dispose();
     this.Label1.Text = "status: Video was successfully created";
     DeleteImage();
}

private void generateThumbnail()
{
    string fileName = "5.jpg";
    string ThumbFolderPath = "~\\Videos\\liveRecording2\\";
    string OriginalFolderPath = "~\\Videos\\liveRecording2\\";
    //Get The Image From File
    System.Drawing.Image OriginalImage = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath(OriginalFolderPath + fileName));
    //Create ITs Thumbnail
    System.Drawing.Image ThumbImage = OriginalImage.GetThumbnailImage(60, 30, null, new System.IntPtr());
    //Store It in Thumbnail Folder
    ThumbImage.Save(HttpContext.Current.Server.MapPath(ThumbFolderPath + "thumb_" + thumbName + ".jpeg"));
    OriginalImage.Dispose();
}

完全なコードはこのスレッドから見ることができます:画像ファイルのロックを解除して特定のフォルダから削除するにはどうすればよいですか?
である別の関数を追加しますgenerateThumbnail

4

2 に答える 2

2

コードを分割してください。やりすぎです。

private string CreateVideoAndThumbNail()
{
  string fileName = GetFileName();
  GenerateVideo(fileName + ".avi";
  GenerateThumbnail(fileName + ".jpg");
}

private string GetFileName()
{

}

private string GetThumbNail(string path)
{

}

private string GetVideo(string path)
{

}
于 2012-10-15T07:19:09.867 に答える
0

私の知る限り、静的変数は目的を十分に果たすようです。

于 2012-10-15T10:30:34.063 に答える