Added border and checkers parameter

This commit is contained in:
Jaex 2020-08-09 05:37:04 +03:00
parent 00dd733e76
commit ab2ff517fb
3 changed files with 20 additions and 5 deletions

View file

@ -46,6 +46,9 @@ public class GradientInfo
[JsonIgnore]
public bool IsVisible => IsValid && Colors.Any(x => x.Color.A > 0);
[JsonIgnore]
public bool IsTransparent => IsValid && Colors.Any(x => x.Color.A < 255);
public GradientInfo()
{
Type = LinearGradientMode.Vertical;
@ -124,15 +127,28 @@ public void Draw(Graphics g, Rectangle rect)
}
}
public Bitmap CreateGradientPreview(int width, int height)
public Bitmap CreateGradientPreview(int width, int height, bool border = false, bool checkers = false)
{
Bitmap bmp = new Bitmap(width, height);
Rectangle rect = new Rectangle(0, 0, width, height);
using (Graphics g = Graphics.FromImage(bmp))
{
if (checkers && IsTransparent)
{
using (Image checker = ImageHelpers.CreateCheckerPattern())
using (Brush checkerBrush = new TextureBrush(checker, WrapMode.Tile))
{
g.FillRectangle(checkerBrush, rect);
}
}
Draw(g, rect);
g.DrawRectangleProper(Pens.Black, rect);
if (border)
{
g.DrawRectangleProper(Pens.Black, rect);
}
}
return bmp;

View file

@ -115,7 +115,6 @@ private void InitializeComponent()
//
// pbPreview
//
this.pbPreview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.pbPreview, "pbPreview");
this.pbPreview.Name = "pbPreview";
this.pbPreview.TabStop = false;

View file

@ -93,7 +93,7 @@ private void AddPresets()
{
GradientInfo gradient = gradients[i];
gradient.Type = Gradient.Type;
ilPresets.Images.Add(gradient.CreateGradientPreview(100, 25));
ilPresets.Images.Add(gradient.CreateGradientPreview(100, 25, true));
ListViewItem lvi = new ListViewItem();
lvi.ImageIndex = i;
@ -126,7 +126,7 @@ private void UpdatePreview()
{
if (isReady)
{
Bitmap bmp = Gradient.CreateGradientPreview(pbPreview.ClientRectangle.Width, pbPreview.ClientRectangle.Height);
Bitmap bmp = Gradient.CreateGradientPreview(pbPreview.ClientRectangle.Width, pbPreview.ClientRectangle.Height, true);
if (pbPreview.Image != null)
{