private void OnImageDragDrop(object sender, DragEventArgs e) { if (e.Data != null && e.Data.GetDataPresent(DataFormats.FileDrop, true) && e.Data.GetData(DataFormats.FileDrop, true) is String[]) { var filePath = (e.Data.GetData(DataFormats.FileDrop) as String[] ?? new string[] { }).FirstOrDefault(); if (filePath == null) { return; } ClipartObject clipartObject = null; if (FileFormatHelper.IsImageFile(filePath)) { clipartObject = ImageClipartObject.FromFile(filePath); } else if (FileFormatHelper.IsVideoFile(filePath)) { clipartObject = GenererateVideoClipart(filePath); } if (clipartObject != null) { LoadData(clipartObject); EditValueChanged?.Invoke(sender, e); } } }
private void OnInsertFileItemClick(object sender, ItemClickEventArgs e) { using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Title = "Inser Image or Video file"; openFileDialog.DefaultExt = "*.png;*.bmp;*.jpg;*.jpeg;*.mp4;*.avi;*.wmv"; openFileDialog.Filter = "Image or Video files|*.png;*.bmp;*.jpg;*.jpeg;*.mp4;*.avi;*.wmv"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); if (openFileDialog.ShowDialog() == DialogResult.OK) { var filePath = openFileDialog.FileName; ClipartObject clipartObject = null; if (FileFormatHelper.IsImageFile(filePath)) { clipartObject = ImageClipartObject.FromFile(filePath); } else if (FileFormatHelper.IsVideoFile(filePath)) { clipartObject = GenererateVideoClipart(filePath); } if (clipartObject != null) { LoadData(clipartObject); EditValueChanged?.Invoke(sender, e); } } } }
public void Init(ClipartObject defaultClipartObject, ClipartConfiguration configuration, IScheduleResourceHolder resourceHolder) { _defaultClipartObject = defaultClipartObject; _resourceHolder = resourceHolder; ResetToDefault(); pictureEdit.Properties.PictureAlignment = configuration.Alignment; pictureEdit.Properties.SizeMode = configuration.SizeMode; }
public void LoadData(ClipartObject clipartObject) { if (_currentClipartObject != null && _currentClipartObject != _defaultClipartObject) { if (_currentClipartObject.Type == ClipartObjectType.Video) { var videoCipartObject = (VideoClipartObject)_currentClipartObject; var videoResource = _resourceHolder.ResourceContainer.Items.FirstOrDefault(item => item.Id == videoCipartObject.ResourceId); if (videoResource != null) { _resourceHolder.ResourceContainer.RemoveResource(videoResource); } } } _currentClipartObject = clipartObject ?? _defaultClipartObject; pictureEdit.Tag = _currentClipartObject; if (_currentClipartObject != null) { switch (_currentClipartObject.Type) { case ClipartObjectType.Image: var imageObject = (ImageClipartObject)_currentClipartObject; pictureEdit.Image = imageObject.Image; break; case ClipartObjectType.Video: var videoClipartObject = (VideoClipartObject)_currentClipartObject; pictureEdit.Image = videoClipartObject.Thumbnail; break; case ClipartObjectType.YouTube: var youtubeObject = (YouTubeClipartObject)_currentClipartObject; pictureEdit.Image = youtubeObject.Thumbnail; break; default: throw new ArgumentOutOfRangeException("Undefined clipart type found"); } } }
private static Shape AddClipartObject(this Shapes shapes, ClipartObject clipartObject, Shape shapeTemplate) { Shape shape = null; switch (clipartObject.Type) { case ClipartObjectType.Image: { var imageObject = (ImageClipartObject)clipartObject; var fileName = Path.GetTempFileName(); if (imageObject.Image != null) { imageObject.Image.Save(fileName); var originalWidth = imageObject.Image.Width; var originalHeight = imageObject.Image.Height; var percentWidth = shapeTemplate.Width / originalWidth; var percentHeight = shapeTemplate.Height / originalHeight; var percent = new[] { 1, percentWidth, percentHeight }.Min(); var width = (Int32)(originalWidth * percent); var height = (Int32)(originalHeight * percent); shape = shapes.AddPicture(fileName, MsoTriState.msoFalse, MsoTriState.msoCTrue, shapeTemplate.Left + (shapeTemplate.Width - width) / 2, shapeTemplate.Top + (shapeTemplate.Height - height) / 2, width, height); } } break; case ClipartObjectType.Video: { var videoClipartObject = (VideoClipartObject)clipartObject; var originalWidth = videoClipartObject.Thumbnail.Width; var originalHeight = videoClipartObject.Thumbnail.Height; var percentWidth = shapeTemplate.Width / originalWidth; var percentHeight = shapeTemplate.Height / originalHeight; var percent = new[] { 1, percentWidth, percentHeight }.Min(); var width = (Int32)(originalWidth * percent); var height = (Int32)(originalHeight * percent); shape = shapes.AddMediaObject2(videoClipartObject.SourceFilePath, MsoTriState.msoFalse, MsoTriState.msoCTrue, shapeTemplate.Left + (shapeTemplate.Width - width) / 2, shapeTemplate.Top + (shapeTemplate.Height - height) / 2, width, height); var fileName = Path.GetTempFileName(); videoClipartObject.Thumbnail.Save(fileName); shape.MediaFormat.SetDisplayPictureFromFile(fileName); } break; case ClipartObjectType.YouTube: { var youTubeObject = (YouTubeClipartObject)clipartObject; var width = (Int32)shapeTemplate.Width; var height = (Int32)(shapeTemplate.Width * 9 / 16); var youTubeTag = String.Format("<object><embed src='{0}' type='application/x-shockwave-flash'></embed></object>", youTubeObject.EmbeddedUrl); shape = shapes.AddMediaObjectFromEmbedTag(youTubeTag, shapeTemplate.Left + (shapeTemplate.Width - width) / 2, shapeTemplate.Top + (shapeTemplate.Height - height) / 2, width, height); } break; default: throw new ArgumentOutOfRangeException("Undefined clipart type found"); } return(shape); }