mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +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")]
|
[DefaultValue(typeof(Size), "0, 0")]
|
||||||
public Size Size { get; set; }
|
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))]
|
[DefaultValue(ImageInterpolationMode.HighQualityBicubic), TypeConverter(typeof(EnumProperNameConverter))]
|
||||||
public ImageInterpolationMode InterpolationMode { get; set; }
|
public ImageInterpolationMode InterpolationMode { get; set; }
|
||||||
|
|
||||||
[DefaultValue(CompositingMode.SourceOver), TypeConverter(typeof(EnumProperNameConverter))]
|
[DefaultValue(CompositingMode.SourceOver), TypeConverter(typeof(EnumProperNameConverter))]
|
||||||
public CompositingMode CompositingMode { get; set; }
|
public CompositingMode CompositingMode { get; set; }
|
||||||
|
|
||||||
[DefaultValue(false), Description("If image watermark size bigger than source image then don't draw it.")]
|
private int opacity;
|
||||||
public bool AutoHide { get; set; }
|
|
||||||
|
[DefaultValue(100)]
|
||||||
|
public int Opacity
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return opacity;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
opacity = value.Clamp(0, 100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public DrawImage()
|
public DrawImage()
|
||||||
{
|
{
|
||||||
|
@ -67,7 +82,7 @@ public DrawImage()
|
||||||
|
|
||||||
public override Bitmap Apply(Bitmap bmp)
|
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;
|
return bmp;
|
||||||
}
|
}
|
||||||
|
@ -116,11 +131,22 @@ public override Bitmap Apply(Bitmap bmp)
|
||||||
g.InterpolationMode = ImageHelpers.GetInterpolationMode(InterpolationMode);
|
g.InterpolationMode = ImageHelpers.GetInterpolationMode(InterpolationMode);
|
||||||
g.PixelOffsetMode = PixelOffsetMode.Half;
|
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||||
g.CompositingMode = CompositingMode;
|
g.CompositingMode = CompositingMode;
|
||||||
|
|
||||||
|
if (Opacity < 100)
|
||||||
|
{
|
||||||
|
using (Bitmap bmpWatermarkTransparent = ColorMatrixManager.Alpha(Opacity / 100f).Apply(bmpWatermark))
|
||||||
|
{
|
||||||
|
g.DrawImage(bmpWatermarkTransparent, imageRectangle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
g.DrawImage(bmpWatermark, imageRectangle);
|
g.DrawImage(bmpWatermark, imageRectangle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return bmp;
|
return bmp;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue