public DialogResult Display() { DialogResult DR = DialogResult.Cancel; try { if (SetPictures.Images == null) { SetPictures = ReturnOriginResolutionThumbnailsForAsset(_asset); } myPictureBox1.LoadSavedRegions(); DR = this.ShowDialog(); if (DR == DialogResult.OK) { myPictureBox1.SaveRegions(); } } catch { } return(DR); }
static ResultAnalysisAsset ReturnOriginResolutionThumbnailsForAsset(IAsset asset) // null if not existing { var result = new ResultAnalysisAsset(); string filenameJPG = asset.Id.Substring(Constants.AssetIdPrefix.Length) + "_OriginalRes_000001.jpg"; string path = Path.GetTempPath(); string pathandfile = Path.Combine(path, filenameJPG); //c7508b75-a451-4887-9435-4a5b39f88c5f_OriginalRes_000001.jpg //c7508b75-a451-4887-9435-4a5b39f88c5f_metadata.xml var filesJPG = asset.GetMediaContext().Files.Where(f => f.Name == filenameJPG).OrderBy(f => f.LastModified); var fileJPG = filesJPG.FirstOrDefault(); if (fileJPG == null) { result.Error = true; return(result); } string filenameMetadata = asset.Id.Substring(Constants.AssetIdPrefix.Length) + "_metadata.xml"; var metadataFile = fileJPG.Asset.AssetFiles.Where(f => f.Name == filenameMetadata).FirstOrDefault(); if (metadataFile == null) { result.Error = true; return(result); } ILocator saslocator = null; try { // The duration for the locator's access policy. var policy = asset.GetMediaContext().AccessPolicies.Create("AP AMSE", new TimeSpan(0, 15, 0), AccessPermissions.Read); saslocator = asset.GetMediaContext().Locators.CreateLocator(LocatorType.Sas, fileJPG.Asset, policy, DateTime.UtcNow.AddMinutes(-5)); // Get original video size from metadata XDocument doc = XDocument.Load(metadataFile.GetSasUri().ToString()); XNamespace ns = "http://schemas.microsoft.com/windowsazure/mediaservices/2014/07/mediaencoder/inputmetadata"; var bodyxml = doc.Element(ns + "AssetFiles").Element(ns + "AssetFile").Element(ns + "VideoTracks").Element(ns + "VideoTrack"); result.OriginalSize = new Size(int.Parse(bodyxml.Attribute("Width").Value), int.Parse(bodyxml.Attribute("Height").Value)); // Thumbnails IEnumerable <IAssetFile> Thumbnails = fileJPG.Asset.AssetFiles.ToList().Where(f => f.Name.StartsWith(asset.Id.Substring(Constants.AssetIdPrefix.Length) + "_OriginalRes_") && f.Name.EndsWith(".jpg")).OrderBy(f => f.Name); // Generate the Progressive Download URLs for each file. List <Uri> ProgressiveDownloadUris = Thumbnails.Select(af => af.GetSasUri()).ToList(); foreach (var urli in ProgressiveDownloadUris) { var request = WebRequest.Create(urli.AbsoluteUri); using (var response = request.GetResponse()) using (var stream = response.GetResponseStream()) { result.Images.Add(Bitmap.FromStream(stream)); } } } catch (Exception e) { result.Error = true; } try { if (saslocator != null) { saslocator.Delete(); } } catch (Exception e) { } return(result); }