mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Added Opacity option to "Image" effect
This commit is contained in:
parent
eabb0c8b23
commit
6b0fa4cdf6
1 changed files with 30 additions and 4 deletions
|
@ -51,14 +51,29 @@ public class DrawImage : ImageEffect
|
|||
[DefaultValue(typeof(Size), "0, 0")]
|
||||
public Size Size { get; set; }
|
||||
|
||||
[DefaultValue(false), Description("If image watermark size bigger than source image then don't draw it.")]
|
||||
public bool AutoHide { get; set; }
|
||||
|
||||
[DefaultValue(ImageInterpolationMode.HighQualityBicubic), TypeConverter(typeof(EnumProperNameConverter))]
|
||||
public ImageInterpolationMode InterpolationMode { get; set; }
|
||||
|
||||
[DefaultValue(CompositingMode.SourceOver), TypeConverter(typeof(EnumProperNameConverter))]
|
||||
public CompositingMode CompositingMode { get; set; }
|
||||
|
||||
[DefaultValue(false), Description("If image watermark size bigger than source image then don't draw it.")]
|
||||
public bool AutoHide { get; set; }
|
||||
private int opacity;
|
||||
|
||||
[DefaultValue(100)]
|
||||
public int Opacity
|
||||
{
|
||||
get
|
||||
{
|
||||
return opacity;
|
||||
}
|
||||
set
|
||||
{
|
||||
opacity = value.Clamp(0, 100);
|
||||
}
|
||||
}
|
||||
|
||||
public DrawImage()
|
||||
{
|
||||
|
@ -67,7 +82,7 @@ public DrawImage()
|
|||
|
||||
public override Bitmap Apply(Bitmap bmp)
|
||||
{
|
||||
if (SizeMode != DrawImageSizeMode.DontResize && Size.Width <= 0 && Size.Height <= 0)
|
||||
if (Opacity < 1 || (SizeMode != DrawImageSizeMode.DontResize && Size.Width <= 0 && Size.Height <= 0))
|
||||
{
|
||||
return bmp;
|
||||
}
|
||||
|
@ -116,11 +131,22 @@ public override Bitmap Apply(Bitmap bmp)
|
|||
g.InterpolationMode = ImageHelpers.GetInterpolationMode(InterpolationMode);
|
||||
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||
g.CompositingMode = CompositingMode;
|
||||
|
||||
if (Opacity < 100)
|
||||
{
|
||||
using (Bitmap bmpWatermarkTransparent = ColorMatrixManager.Alpha(Opacity / 100f).Apply(bmpWatermark))
|
||||
{
|
||||
g.DrawImage(bmpWatermarkTransparent, imageRectangle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g.DrawImage(bmpWatermark, imageRectangle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bmp;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue