more changes. Better viewing of preview

This commit is contained in:
Tim Young 2017-09-20 09:59:48 -05:00
parent 42b98b65db
commit 7ed9e548a8
2 changed files with 62 additions and 18 deletions

View File

@ -49,6 +49,7 @@
this.lblCountSprites = new System.Windows.Forms.Label();
this.TCTabPages = new System.Windows.Forms.TabControl();
this.tpFromImage = new System.Windows.Forms.TabPage();
this.lblAnimationNumber = new System.Windows.Forms.Label();
this.lblAnimationFwdBack = new System.Windows.Forms.Label();
this.btnAnimBack = new System.Windows.Forms.Button();
this.btnAnimFwd = new System.Windows.Forms.Button();
@ -69,7 +70,6 @@
this.btnReset = new System.Windows.Forms.Button();
this.btnPreviewAnimFwd = new System.Windows.Forms.Button();
this.btnPreviewAnimBack = new System.Windows.Forms.Button();
this.lblAnimationNumber = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pbImageField)).BeginInit();
this.TCTabPages.SuspendLayout();
this.tpFromImage.SuspendLayout();
@ -283,6 +283,15 @@
this.tpFromImage.Text = "From Image";
this.tpFromImage.UseVisualStyleBackColor = true;
//
// lblAnimationNumber
//
this.lblAnimationNumber.AutoSize = true;
this.lblAnimationNumber.Location = new System.Drawing.Point(190, 91);
this.lblAnimationNumber.Name = "lblAnimationNumber";
this.lblAnimationNumber.Size = new System.Drawing.Size(16, 17);
this.lblAnimationNumber.TabIndex = 21;
this.lblAnimationNumber.Text = "0";
//
// lblAnimationFwdBack
//
this.lblAnimationFwdBack.AutoSize = true;
@ -463,6 +472,7 @@
this.btnReset.TabIndex = 24;
this.btnReset.Text = "Reset";
this.btnReset.UseVisualStyleBackColor = true;
this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
//
// btnPreviewAnimFwd
//
@ -486,15 +496,6 @@
this.btnPreviewAnimBack.UseVisualStyleBackColor = true;
this.btnPreviewAnimBack.Click += new System.EventHandler(this.btnPreviewAnimBack_Click);
//
// lblAnimationNumber
//
this.lblAnimationNumber.AutoSize = true;
this.lblAnimationNumber.Location = new System.Drawing.Point(190, 91);
this.lblAnimationNumber.Name = "lblAnimationNumber";
this.lblAnimationNumber.Size = new System.Drawing.Size(16, 17);
this.lblAnimationNumber.TabIndex = 21;
this.lblAnimationNumber.Text = "0";
//
// SpriteEntryForm
//
this.AcceptButton = this.btnApply;

View File

@ -170,22 +170,63 @@ namespace SpriteLibrary
UpdateHighlightBox();
}
/// <summary>
/// If multiple frames are selected, retrieve all of their rectangles
/// </summary>
/// <returns></returns>
private List<Rectangle> AnimationFrameAreas()
{
List<Rectangle> Frames = new List<Rectangle>();
Point start = ChosenArea.Location;
int animations;
int.TryParse(tbNumFrames.Text, out animations);
Frames.Add(ChosenArea);
Image tImage = myDatabase.GetImageFromName(cbStartingImage.SelectedItem.ToString(), true);
for (int i=1; i< animations; i++)
{
start = new Point(start.X + ChosenArea.Width, start.Y);
if(start.X >= tImage.Width)
{
start.X = 0;
start.Y += ChosenArea.Height;
}
Rectangle tRec = new Rectangle(start.X, start.Y, ChosenArea.Width, ChosenArea.Height);
Frames.Add(tRec);
}
return Frames;
}
private void UpdateHighlightBox()
{
int transparency = 50;
Image NewFrontImage = new Bitmap(pbImageField.BackgroundImage.Width, pbImageField.BackgroundImage.Height);
Color FillColor = Color.Green;
Color FillColor = Color.Gray;
Brush brush = new SolidBrush(Color.FromArgb(transparency, FillColor.R, FillColor.G, FillColor.B));
Brush nobrush = new SolidBrush(Color.FromArgb(0,0,0,0));
List<Rectangle> areas = AnimationFrameAreas();
using (Graphics G = Graphics.FromImage(NewFrontImage))
{
G.FillRectangle(brush, 0,0,NewFrontImage.Width,NewFrontImage.Height);
GraphicsPath path = new GraphicsPath();
path.AddRectangle(ChosenArea);
foreach (Rectangle one in areas)
{
path.AddRectangle(one);
}
G.SetClip(path);
G.Clear(Color.Transparent);
G.ResetClip();
// G.FillRectangle(nobrush, ChosenArea);
transparency = 50;
FillColor = Color.Green;
int increment = 10;
if (areas.Count > 7) increment = 5;
foreach (Rectangle one in areas)
{
transparency += increment;
if (transparency > 150) transparency = 160;
brush = new SolidBrush(Color.FromArgb(transparency, FillColor.R, FillColor.G, FillColor.B));
G.FillRectangle(brush, one);
}
}
pbImageField.Image = NewFrontImage;
@ -209,14 +250,11 @@ namespace SpriteLibrary
private void cbStartingImage_SelectedIndexChanged(object sender, EventArgs e)
{
ResourceManager rm;
if (myResources != null) rm = myResources;
else rm = Properties.Resources.ResourceManager;
//We have a selected item
if (cbStartingImage.SelectedIndex >= 0)
{
//Load in a new image into our background
Image NewImage = (Bitmap)rm.GetObject(cbStartingImage.SelectedItem.ToString());
Image NewImage = myDatabase.GetImageFromName(cbStartingImage.SelectedItem.ToString(),true);
if (NewImage != null)
{
MyController.ReplaceOriginalImage(new Bitmap(NewImage));
@ -571,5 +609,10 @@ namespace SpriteLibrary
PreviewSprite.ChangeAnimation(NextAnim);
}
}
private void btnReset_Click(object sender, EventArgs e)
{
SpriteInformationToForm();
}
}
}