/// <summary> ///Reason : To get frame details from video /// </summary> /// <param name="extractedImageFolderPath"></param> /// <param name="contentMessage"></param> /// <param name="colorMessage"></param> private List <ColorModel> GetFrameDetailsOfVideo(string extractedImageFolderPath, string frameName, ref string contentMessage) { try { List <VideoDetails> videoDetailsList = new List <VideoDetails>(); List <ColorModel> colorList = new List <ColorModel>(); List <ColorModel> avgVideoColorList = new List <ColorModel>(); int i = 1; string blankFrame = ""; string colorNames = ""; var fileEntries = GetFilesFrom(extractedImageFolderPath, imageFilters, false, frameName); foreach (string fileName in fileEntries) { VideoDetails videoDetailsObj = new VideoDetails(); videoDetailsObj.FileName = fileName; videoDetailsObj.Content = new ImageVideoProcessing.ImageGrabber().ExtractTextFromImage(fileName); videoDetailsObj.ColorDetails = colorNames; colorList.AddRange(new ImageVideoProcessing.ImageGrabber().GetImageColors(fileName)); if (videoDetailsObj.Content.Trim() != "") { contentMessage += "Frame " + i + ": \r\n" + videoDetailsObj.Content + "\r\n"; } else { blankFrame += "\r\n Frame " + i; } i += 1; } contentMessage += !string.IsNullOrEmpty(blankFrame) ? "\r\n\r\nFollowing frames are not having any content:" + blankFrame : ""; var avgColorList = colorList.GroupBy(g => g.color, r => r.pecentage).Select(g => new { color = g.Key, colorPercentage = g.Average() }); foreach (var clr in avgColorList) { ColorModel colrMod = new ColorModel(); colrMod.color = clr.color; colrMod.pecentage = Convert.ToInt32(Math.Round(clr.colorPercentage)); avgVideoColorList.Add(colrMod); } return(avgVideoColorList); } catch (Exception) { throw; } finally { GC.Collect(); } }
/// <summary> ///Reason : To get frame details from video /// </summary> /// <param name="extractedImageFolderPath"></param> /// <param name="contentMessage"></param> /// <param name="colorMessage"></param> private List<ColorModel> GetFrameDetailsOfVideo(string extractedImageFolderPath, string frameName, ref string contentMessage ) { try { List<VideoDetails> videoDetailsList = new List<VideoDetails>(); List<ColorModel> colorList = new List<ColorModel>(); List<ColorModel> avgVideoColorList = new List<ColorModel>(); int i = 1; string blankFrame = ""; string colorNames = ""; var fileEntries = GetFilesFrom(extractedImageFolderPath, imageFilters, false, frameName); foreach (string fileName in fileEntries) { VideoDetails videoDetailsObj = new VideoDetails(); videoDetailsObj.FileName = fileName; videoDetailsObj.Content = new ImageVideoProcessing.ImageGrabber().ExtractTextFromImage(fileName); videoDetailsObj.ColorDetails = colorNames; colorList.AddRange(new ImageVideoProcessing.ImageGrabber().GetImageColors(fileName)); if (videoDetailsObj.Content.Trim() != "") contentMessage += "Frame " + i + ": \r\n" + videoDetailsObj.Content + "\r\n"; else blankFrame += "\r\n Frame " + i; i += 1; } contentMessage += !string.IsNullOrEmpty(blankFrame) ? "\r\n\r\nFollowing frames are not having any content:" + blankFrame : ""; var avgColorList = colorList.GroupBy(g => g.color, r => r.pecentage).Select(g => new { color = g.Key, colorPercentage = g.Average() }); foreach (var clr in avgColorList) { ColorModel colrMod = new ColorModel(); colrMod.color = clr.color; colrMod.pecentage = Convert.ToInt32(Math.Round(clr.colorPercentage)); avgVideoColorList.Add(colrMod); } return avgVideoColorList; } catch (Exception) { throw; } finally { GC.Collect(); } }