예제 #1
0
        private void RemoveSelectedEffects()
        {
            ImageEffectPreset preset = GetSelectedPreset();

            if (preset != null)
            {
                int index = lvEffects.SelectedIndex;

                if (index > -1)
                {
                    preset.Effects.RemoveAt(index);
                    lvEffects.Items.RemoveAt(index);

                    UpdatePreview();
                }
            }
        }
예제 #2
0
        private void tsmiEffectClick(object sender, EventArgs e)
        {
            ImageEffectPreset preset = GetSelectedPreset();

            if (preset != null)
            {
                ToolStripMenuItem tsmi = sender as ToolStripMenuItem;

                if (tsmi != null && tsmi.Tag is Type)
                {
                    Type        type        = (Type)tsmi.Tag;
                    ImageEffect imageEffect = (ImageEffect)Activator.CreateInstance(type);
                    AddEffect(imageEffect, preset);
                    UpdatePreview();
                }
            }
        }
예제 #3
0
        private void LoadPreset(ImageEffectPreset preset)
        {
            pauseUpdate = true;

            txtPresetName.Text = preset.Name;
            lvEffects.Items.Clear();
            pgSettings.SelectedObject = null;

            foreach (ImageEffect imageEffect in preset.Effects)
            {
                AddEffect(imageEffect);
            }

            pauseUpdate = false;

            UpdatePreview();
        }
예제 #4
0
        public static ImageEffectPreset GetDefaultPreset()
        {
            ImageEffectPreset preset = new ImageEffectPreset();

            Canvas canvas = new Canvas();

            canvas.Margin = new Padding(0, 0, 0, 30);
            preset.Effects.Add(canvas);

            DrawText text = new DrawText();

            text.Offset            = new Point(0, 0);
            text.UseCustomGradient = true;
            preset.Effects.Add(text);

            return(preset);
        }
예제 #5
0
        public void ImportImageEffect(string json)
        {
            ImageEffectPreset preset = null;

            try
            {
                preset = JsonHelpers.DeserializeFromString <ImageEffectPreset>(json, serializationBinder);
            }
            catch (Exception e)
            {
                DebugHelper.WriteException(e);
                e.ShowError();
            }

            if (preset != null && preset.Effects.Count > 0)
            {
                AddPreset(preset);
            }
        }
예제 #6
0
        private void btnDuplicate_Click(object sender, EventArgs e)
        {
            ImageEffectPreset preset = GetSelectedPreset();

            if (preset != null)
            {
                if (lvEffects.SelectedItems.Count > 0)
                {
                    ListViewItem lvi = lvEffects.SelectedItems[0];

                    if (lvi.Tag is ImageEffect)
                    {
                        ImageEffect imageEffect      = (ImageEffect)lvi.Tag;
                        ImageEffect imageEffectClone = imageEffect.Copy();
                        AddEffect(imageEffectClone, preset);
                        UpdatePreview();
                    }
                }
            }
        }
예제 #7
0
        private void UpdatePreview()
        {
            if (!pauseUpdate)
            {
                ImageEffectPreset preset = GetSelectedPreset();

                if (preset != null && DefaultImage != null)
                {
                    Cursor = Cursors.WaitCursor;

                    try
                    {
                        Stopwatch timer = Stopwatch.StartNew();

                        using (Image preview = ApplyEffects())
                        {
                            if (preview != null)
                            {
                                pbResult.LoadImage(preview);
                                Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
                                                     preview.Width, preview.Height, timer.ElapsedMilliseconds);
                            }
                            else
                            {
                                pbResult.Reset();
                                Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
                                                     0, 0, timer.ElapsedMilliseconds);
                            }
                        }
                    }
                    finally
                    {
                        Cursor = Cursors.Default;
                    }
                }

                UpdateControlStates();
            }
        }