Added Size and SizeMode properties to the image watermark.

This commit is contained in:
RedMser 2018-02-20 19:21:45 +01:00
parent d2ab43e329
commit 5b927ee30c

View file

@ -28,6 +28,7 @@ You should have received a copy of the GNU General Public License
using System.Drawing;
using System.Drawing.Design;
using System.IO;
using System.Windows.Forms;
namespace ShareX.ImageEffectsLib
{
@ -58,6 +59,13 @@ public Point Offset
[DefaultValue(""), Editor(typeof(ImageFileNameEditor), typeof(UITypeEditor))]
public string ImageLocation { get; set; }
//TODO: Is a custom enum for different watermark image sizes a better idea?
[DefaultValue(SizeType.AutoSize)]
public SizeType SizeMode { get; set; }
[DefaultValue(typeof(Size), "0, 0")]
public Size Size { get; set; }
public DrawImage()
{
this.ApplyDefaultPropertyValues();
@ -69,8 +77,22 @@ public override Image Apply(Image img)
{
using (Image img2 = ImageHelpers.LoadImage(ImageLocation))
{
Point imagePosition = Helpers.GetPosition(Placement, Offset, img.Size, img2.Size);
Rectangle imageRectangle = new Rectangle(imagePosition, img2.Size);
//Calculate size first
Size imageSize = img2.Size;
if (SizeMode == SizeType.Absolute)
{
//Use Size property
imageSize = Size;
}
else if (SizeMode == SizeType.Percent)
{
//Relative size
imageSize = new Size((int)(img2.Width * (Size.Width / 100.0)), (int)(img2.Height * (Size.Height / 100.0)));
}
//Place the image
Point imagePosition = Helpers.GetPosition(Placement, Offset, img.Size, imageSize);
Rectangle imageRectangle = new Rectangle(imagePosition, imageSize);
if (AutoHide && !new Rectangle(0, 0, img.Width, img.Height).Contains(imageRectangle))
{