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

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> /// </summary>
public IDrawableContainerList Elements => _elements; public IDrawableContainerList Elements => _elements;
/// <summary> public bool HasDefaultEffect { get; set; } = false;
/// pulls selected elements up one level in hierarchy
/// </summary> /// <summary>
public void PullElementsUp() /// pulls selected elements up one level in hierarchy
/// </summary>
public void PullElementsUp()
{ {
_elements.PullElementsUp(selectedElements); _elements.PullElementsUp(selectedElements);
_elements.Invalidate(); _elements.Invalidate();

View file

@ -99,7 +99,11 @@ namespace GreenshotPlugin.Core {
return; return;
} }
//set default border effect. //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); 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\EventDelay.cs" />
<Compile Include="Core\FastBitmap.cs" /> <Compile Include="Core\FastBitmap.cs" />
<Compile Include="Core\Func.cs" /> <Compile Include="Core\Func.cs" />
<Compile Include="Effects\DefaultEffect.cs" />
<Compile Include="Effects\GrayscaleEffect.cs" /> <Compile Include="Effects\GrayscaleEffect.cs" />
<Compile Include="Effects\IEffect.cs" /> <Compile Include="Effects\IEffect.cs" />
<Compile Include="Core\IImage.cs" /> <Compile Include="Core\IImage.cs" />

View file

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