修复默认特效重复出现的问题

This commit is contained in:
xucongli1989 2017-01-16 23:02:34 +08:00
commit 319b4af18a
5 changed files with 54 additions and 5 deletions

View file

@ -2045,10 +2045,12 @@ namespace Greenshot.Drawing
/// </summary>
public IDrawableContainerList Elements => _elements;
/// <summary>
/// pulls selected elements up one level in hierarchy
/// </summary>
public void PullElementsUp()
public bool HasDefaultEffect { get; set; } = false;
/// <summary>
/// pulls selected elements up one level in hierarchy
/// </summary>
public void PullElementsUp()
{
_elements.PullElementsUp(selectedElements);
_elements.Invalidate();

View file

@ -99,7 +99,11 @@ namespace GreenshotPlugin.Core {
return;
}
//set default border effect.
surface.ApplyBitmapEffect(new Effects.BorderEffect());
if (!surface.HasDefaultEffect)
{
surface.ApplyBitmapEffect(new Effects.DefaultEffect());
surface.HasDefaultEffect = true;
}
}
public abstract ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails);

View file

@ -0,0 +1,40 @@
using GreenshotPlugin.Core;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace GreenshotPlugin.Effects
{
/// <summary>
/// default effect.
/// </summary>
public class DefaultEffect : IEffect
{
public DefaultEffect()
{
this.Reset();
}
public Color Color
{
get;
set;
}
public int Width
{
get;
set;
}
public Image Apply(Image sourceImage, Matrix matrix)
{
return ImageHelper.CreateBorder(sourceImage, Width, Color, sourceImage.PixelFormat, matrix);
}
public void Reset()
{
this.Width = 2;
this.Color = Color.Gray;
}
}
}

View file

@ -50,6 +50,7 @@
<Compile Include="Core\EventDelay.cs" />
<Compile Include="Core\FastBitmap.cs" />
<Compile Include="Core\Func.cs" />
<Compile Include="Effects\DefaultEffect.cs" />
<Compile Include="Effects\GrayscaleEffect.cs" />
<Compile Include="Effects\IEffect.cs" />
<Compile Include="Core\IImage.cs" />

View file

@ -263,5 +263,7 @@ namespace Greenshot.Plugin
int Height { get; }
void MakeUndoable(IMemento memento, bool allowMerge);
bool HasDefaultEffect { get; set; }
}
}