diff --git a/Doc/FinalPresentation/Gifitti_Final_Presentation.pptx b/Doc/FinalPresentation/Gifitti_Final_Presentation.pptx index fe38dc5da9a51c7943af56bcf8df6e25217377ed..5028e22b5269fcf9bd069bbfaebea6ce0232feb5 100644 Binary files a/Doc/FinalPresentation/Gifitti_Final_Presentation.pptx and b/Doc/FinalPresentation/Gifitti_Final_Presentation.pptx differ diff --git a/src/Gifitti/Gifitti/Models/GifModel.cs b/src/Gifitti/Gifitti/Models/GifModel.cs index 24d544b683c5862d2271bce2949b7c9c31d84247..cfeb6d49092177a75a0e23eed02ae09aa1dd6205 100644 --- a/src/Gifitti/Gifitti/Models/GifModel.cs +++ b/src/Gifitti/Gifitti/Models/GifModel.cs @@ -14,7 +14,7 @@ namespace Gifitti.Models /// <summary> /// Software model of a GIF, Encapsulated with bassic opperations on GIF images. /// </summary> - public class GifModel + public class GifModel : IDisposable { public Image gifImage { get; set; } public Image originalGif { get; private set; } @@ -36,6 +36,7 @@ namespace Gifitti.Models /// <param name="path">Location of the GIF being loaded.</param> public GifModel(String path) { + Console.WriteLine(Path.GetExtension(path)); //Save the original Gif originalGif = Image.FromFile(path); PropertyItem item = originalGif.GetPropertyItem(0x5100); // FrameDelay in libgdiplus @@ -206,5 +207,10 @@ namespace Gifitti.Models { frames[index] = frame; } + + public void Dispose() + { + this.frames = null; + } } } diff --git a/src/Gifitti/Gifitti/View_Models/MainForm.Designer.cs b/src/Gifitti/Gifitti/View_Models/MainForm.Designer.cs index cf3b76384ea5f9fec0f7925696de4e446baf105b..c447d6dc1cd3fcc05e772b0352e5abbc6a19b27b 100644 --- a/src/Gifitti/Gifitti/View_Models/MainForm.Designer.cs +++ b/src/Gifitti/Gifitti/View_Models/MainForm.Designer.cs @@ -267,6 +267,7 @@ namespace Gifitti.View_Models this.Controls.Add(this.textBox1); this.Controls.Add(this.gifView); this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.MaximizeBox = false; this.Menu = this.mainMenu1; this.Name = "MainForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; diff --git a/src/Gifitti/Gifitti/View_Models/MainForm.cs b/src/Gifitti/Gifitti/View_Models/MainForm.cs index d357132d22186fa4eb32fd0fba95457590d41d0b..4c54ab11f4e2deac6c29e99073d35bdcf209020f 100644 --- a/src/Gifitti/Gifitti/View_Models/MainForm.cs +++ b/src/Gifitti/Gifitti/View_Models/MainForm.cs @@ -256,15 +256,26 @@ namespace Gifitti.View_Models string file = openGifFileDialog.FileName; try { - gm = new GifModel(file); - gm.ReverseAtEnd = false; - Image loadedGif = gm.gifImage; - globalGif = loadedGif; - //gifView.Image = loadedGif; - - gifView.Width = loadedGif.Width; - gifView.Height = loadedGif.Height; - ClientSize = new Size(loadedGif.Width + widthBuffer, loadedGif.Height + heightBuffer); + try + { + if (!Path.GetExtension(file).ToLower().Equals(".gif")) + throw new FileLoadException("Invalid Extension Specified"); + gm?.Dispose(); + gm = new GifModel(file); + gm.ReverseAtEnd = false; + Image loadedGif = gm.gifImage; + globalGif = loadedGif; + //gifView.Image = loadedGif; + + gifView.Width = loadedGif.Width; + gifView.Height = loadedGif.Height; + ClientSize = new Size(loadedGif.Width + widthBuffer, loadedGif.Height + heightBuffer); + } + catch (FileLoadException) + { + MessageBox.Show("Specify a GIF file."); + return; + } } catch (IOException) @@ -313,7 +324,8 @@ namespace Gifitti.View_Models /// <param name="e"> Event arguments associated with this event. </param> private void GifFPSSliderUpdate(object sender, EventArgs e) { - gm.delay = (11-trackBar1.Value)*gm.originalDelay; + if (gm != null) + gm.delay = (11-trackBar1.Value)*gm.originalDelay; } private void MenuItemResize(object sender, EventArgs e)