diff --git a/WindowsForms2.sln b/WhipsImageConverter.sln similarity index 90% rename from WindowsForms2.sln rename to WhipsImageConverter.sln index 52aecdc..adea83e 100644 --- a/WindowsForms2.sln +++ b/WhipsImageConverter.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WhipsImageConverter", "WindowsForms2\WhipsImageConverter.csproj", "{9643C76C-617C-4B4B-AAB9-ABDB489E2AAD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WhipsImageConverter", "WhipsImageConverter\WhipsImageConverter.csproj", "{9643C76C-617C-4B4B-AAB9-ABDB489E2AAD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/WindowsForms2/App.config b/WhipsImageConverter/App.config similarity index 100% rename from WindowsForms2/App.config rename to WhipsImageConverter/App.config diff --git a/WindowsForms2/DitheringPopup_Form.Designer.cs b/WhipsImageConverter/DitheringPopup_Form.Designer.cs similarity index 99% rename from WindowsForms2/DitheringPopup_Form.Designer.cs rename to WhipsImageConverter/DitheringPopup_Form.Designer.cs index ccb4c80..6f9b7ae 100644 --- a/WindowsForms2/DitheringPopup_Form.Designer.cs +++ b/WhipsImageConverter/DitheringPopup_Form.Designer.cs @@ -1,4 +1,4 @@ -namespace WindowsForms2 +namespace WhipsImageConverter { partial class DitheringPopup { diff --git a/WindowsForms2/DitheringPopup_Form.cs b/WhipsImageConverter/DitheringPopup_Form.cs similarity index 92% rename from WindowsForms2/DitheringPopup_Form.cs rename to WhipsImageConverter/DitheringPopup_Form.cs index acc808e..2e7b6f4 100644 --- a/WindowsForms2/DitheringPopup_Form.cs +++ b/WhipsImageConverter/DitheringPopup_Form.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; using System.Windows.Forms; -namespace WindowsForms2 +namespace WhipsImageConverter { public partial class DitheringPopup : Form { @@ -21,19 +21,19 @@ public DitheringPopup(int mode) private void ShowImages(int mode) { /*var assembly = System.Reflection.Assembly.GetExecutingAssembly(); - using (var imgStream = assembly.GetManifestResourceStream("WindowsForms2.original.png")) + using (var imgStream = assembly.GetManifestResourceStream("WhipsImageConverter.original.png")) { var img = new Bitmap(imgStream); OriginalBox.Image = img; } - using (var imgStream = assembly.GetManifestResourceStream("WindowsForms2.dithering.png")) + using (var imgStream = assembly.GetManifestResourceStream("WhipsImageConverter.dithering.png")) { var img = new Bitmap(imgStream); DitherBox.Image = img; } - using (var imgStream = assembly.GetManifestResourceStream("WindowsForms2.nodithering.png")) + using (var imgStream = assembly.GetManifestResourceStream("WhipsImageConverter.nodithering.png")) { var img = new Bitmap(imgStream); NoDitherBox.Image = img; diff --git a/WindowsForms2/DitheringPopup_Form.resx b/WhipsImageConverter/DitheringPopup_Form.resx similarity index 100% rename from WindowsForms2/DitheringPopup_Form.resx rename to WhipsImageConverter/DitheringPopup_Form.resx diff --git a/WindowsForms2/Emblem.ico b/WhipsImageConverter/Emblem.ico similarity index 100% rename from WindowsForms2/Emblem.ico rename to WhipsImageConverter/Emblem.ico diff --git a/WindowsForms2/ImageToLCD_Form.Designer.cs b/WhipsImageConverter/ImageToLCD_Form.Designer.cs similarity index 93% rename from WindowsForms2/ImageToLCD_Form.Designer.cs rename to WhipsImageConverter/ImageToLCD_Form.Designer.cs index 48f2a89..6c57c11 100644 --- a/WindowsForms2/ImageToLCD_Form.Designer.cs +++ b/WhipsImageConverter/ImageToLCD_Form.Designer.cs @@ -1,4 +1,4 @@ -namespace WindowsForms2 +namespace WhipsImageConverter { partial class ImageToLCD { @@ -52,13 +52,14 @@ private void InitializeComponent() this.label7 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); + this.checkBox_aspectratio = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.ImagePreviewBox)).BeginInit(); this.SuspendLayout(); // // button_Convert // this.button_Convert.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button_Convert.Location = new System.Drawing.Point(528, 317); + this.button_Convert.Location = new System.Drawing.Point(528, 331); this.button_Convert.Name = "button_Convert"; this.button_Convert.Size = new System.Drawing.Size(151, 42); this.button_Convert.TabIndex = 0; @@ -226,7 +227,7 @@ private void InitializeComponent() "Sierra-3", "Sierra-2", "Sierra Lite"}); - this.combobox_dither.Location = new System.Drawing.Point(627, 268); + this.combobox_dither.Location = new System.Drawing.Point(622, 268); this.combobox_dither.Name = "combobox_dither"; this.combobox_dither.Size = new System.Drawing.Size(158, 24); this.combobox_dither.TabIndex = 19; @@ -235,7 +236,7 @@ private void InitializeComponent() // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(624, 248); + this.label5.Location = new System.Drawing.Point(619, 248); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(108, 17); this.label5.TabIndex = 20; @@ -257,7 +258,7 @@ private void InitializeComponent() "Square (178x178)", "Wide (356x178)", "(None)"}); - this.combobox_resize.Location = new System.Drawing.Point(431, 268); + this.combobox_resize.Location = new System.Drawing.Point(409, 268); this.combobox_resize.Name = "combobox_resize"; this.combobox_resize.Size = new System.Drawing.Size(158, 24); this.combobox_resize.TabIndex = 22; @@ -266,7 +267,7 @@ private void InitializeComponent() // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(428, 248); + this.label7.Location = new System.Drawing.Point(406, 248); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(112, 17); this.label7.TabIndex = 23; @@ -291,11 +292,25 @@ private void InitializeComponent() this.label9.Text = "(Click image to enlarge)"; this.label9.Click += new System.EventHandler(this.label9_Click); // + // checkBox_aspectratio + // + this.checkBox_aspectratio.AutoSize = true; + this.checkBox_aspectratio.Checked = true; + this.checkBox_aspectratio.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox_aspectratio.Location = new System.Drawing.Point(409, 298); + this.checkBox_aspectratio.Name = "checkBox_aspectratio"; + this.checkBox_aspectratio.Size = new System.Drawing.Size(167, 21); + this.checkBox_aspectratio.TabIndex = 26; + this.checkBox_aspectratio.Text = "Maintain Aspect Ratio"; + this.checkBox_aspectratio.UseVisualStyleBackColor = true; + this.checkBox_aspectratio.CheckedChanged += new System.EventHandler(this.checkBox_aspectratio_CheckedChanged); + // // ImageToLCD // this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.ClientSize = new System.Drawing.Size(862, 593); + this.Controls.Add(this.checkBox_aspectratio); this.Controls.Add(this.label9); this.Controls.Add(this.label8); this.Controls.Add(this.label7); @@ -324,7 +339,7 @@ private void InitializeComponent() this.MinimizeBox = false; this.Name = "ImageToLCD"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Whip\'s ImageToLCD Converter Beta6 - 12.26.16"; + this.Text = "Whip\'s Image Converter Beta7- 1.17.17"; ((System.ComponentModel.ISupportInitialize)(this.ImagePreviewBox)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -356,6 +371,7 @@ private void InitializeComponent() private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label9; + private System.Windows.Forms.CheckBox checkBox_aspectratio; } } diff --git a/WindowsForms2/ImageToLCD_Form.cs b/WhipsImageConverter/ImageToLCD_Form.cs similarity index 92% rename from WindowsForms2/ImageToLCD_Form.cs rename to WhipsImageConverter/ImageToLCD_Form.cs index da9b461..272f102 100644 --- a/WindowsForms2/ImageToLCD_Form.cs +++ b/WhipsImageConverter/ImageToLCD_Form.cs @@ -13,7 +13,7 @@ //Reference: http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT -namespace WindowsForms2 +namespace WhipsImageConverter { public partial class ImageToLCD : Form { @@ -68,12 +68,119 @@ void CacheImages() } baseImage = (Bitmap)Image.FromFile(fileDirectory, true); - squareImage = new Bitmap(baseImage, new Size(178, 178)); - rectangleImage = new Bitmap(baseImage, new Size(356, 178)); + + bool maintainAspectRatio = checkBox_aspectratio.Checked; //default is false + + if (!maintainAspectRatio) + { + squareImage = new Bitmap(baseImage, new Size(178, 178)); + rectangleImage = new Bitmap(baseImage, new Size(356, 178)); + } + else + { + squareImage = FrameImage(baseImage, 178, 178); + rectangleImage = FrameImage(baseImage, 356, 178); + } imageLoaded = true; } + Bitmap FrameImage(Bitmap baseImage, int width, int height) + { + Bitmap framedImage; + int borderThickness = 0; + float compressionRatio = 1; + int borderMode = 0; //0 = none; 1 = horizontal; 2 = vertical bars + int desiredWidth = 0; + int desiredHeight = 0; + + + framedImage = new Bitmap(width, height); + if ((float)baseImage.Width / width > (float)baseImage.Height / height) //horizontal bars + { + desiredWidth = width; + compressionRatio = (float)width / baseImage.Width; + desiredHeight = (int)(baseImage.Height * compressionRatio); + + borderThickness =Math.Abs(desiredHeight - height) / 2; + borderMode = 1; + } + else if ((float)baseImage.Width / width == (float)baseImage.Height / height) + { + borderMode = 0; + desiredWidth = width; + desiredHeight = height; + } + else //vertical bars + { + desiredHeight = height; + compressionRatio = (float)height / baseImage.Height; + desiredWidth = (int)(baseImage.Width * compressionRatio); + + borderThickness = Math.Abs(desiredWidth - width) / 2; + borderMode = 2; + } + + if (borderThickness == 0) + { + borderMode = 0; + } + + Bitmap imageNoBorder = new Bitmap(baseImage, new Size(desiredWidth, desiredHeight)); + Bitmap border; + + switch (borderMode) + { + case 0: + framedImage = imageNoBorder; + break; + + case 1: // horizontal bars + border = new Bitmap(width, borderThickness); + + for (int w = 0; w < width; w++) + { + for (int h = 0; h < height; h++) + { + if (h < borderThickness) + { + framedImage.SetPixel(w, h, border.GetPixel(w, h)); + } + else + { + if (h - borderThickness < imageNoBorder.Height) + framedImage.SetPixel(w, h, imageNoBorder.GetPixel(w, h - borderThickness)); + } + } + } + + break; + + case 2: //vertical bars + border = new Bitmap(borderThickness, height); + + for (int h = 0; h < height; h++) + { + for (int w = 0; w < width; w++) + { + if (w < borderThickness) + { + framedImage.SetPixel(w, h, border.GetPixel(w, h)); + } + else + { + if (w - borderThickness < imageNoBorder.Width) + framedImage.SetPixel(w, h, imageNoBorder.GetPixel(w - borderThickness, h)); + } + } + } + + break; + } + + return framedImage; + } + void DitherImage() { if (!imageLoaded) @@ -1535,5 +1642,14 @@ private void combobox_resize_SelectedIndexChanged(object sender, EventArgs e) DitherImage(); } + + private void checkBox_aspectratio_CheckedChanged(object sender, EventArgs e) + { + //reset return string + textBox_Return.Text = ""; + + CacheImages(); + DitherImage(); + } } } diff --git a/WindowsForms2/ImageToLCD_Form.resx b/WhipsImageConverter/ImageToLCD_Form.resx similarity index 100% rename from WindowsForms2/ImageToLCD_Form.resx rename to WhipsImageConverter/ImageToLCD_Form.resx diff --git a/WindowsForms2/Program.cs b/WhipsImageConverter/Program.cs similarity index 94% rename from WindowsForms2/Program.cs rename to WhipsImageConverter/Program.cs index f399b3f..aab557d 100644 --- a/WindowsForms2/Program.cs +++ b/WhipsImageConverter/Program.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; using System.Windows.Forms; -namespace WindowsForms2 +namespace WhipsImageConverter { static class Program { diff --git a/WindowsForms2/Properties/AssemblyInfo.cs b/WhipsImageConverter/Properties/AssemblyInfo.cs similarity index 100% rename from WindowsForms2/Properties/AssemblyInfo.cs rename to WhipsImageConverter/Properties/AssemblyInfo.cs diff --git a/WindowsForms2/Properties/Resources.Designer.cs b/WhipsImageConverter/Properties/Resources.Designer.cs similarity index 96% rename from WindowsForms2/Properties/Resources.Designer.cs rename to WhipsImageConverter/Properties/Resources.Designer.cs index 6f088f5..c15f2b3 100644 --- a/WindowsForms2/Properties/Resources.Designer.cs +++ b/WhipsImageConverter/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace WindowsForms2.Properties { +namespace WhipsImageConverter.Properties { using System; @@ -39,7 +39,7 @@ internal class Resources { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsForms2.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WhipsImageConverter.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/WindowsForms2/Properties/Resources.resx b/WhipsImageConverter/Properties/Resources.resx similarity index 100% rename from WindowsForms2/Properties/Resources.resx rename to WhipsImageConverter/Properties/Resources.resx diff --git a/WindowsForms2/Properties/Settings.Designer.cs b/WhipsImageConverter/Properties/Settings.Designer.cs similarity index 96% rename from WindowsForms2/Properties/Settings.Designer.cs rename to WhipsImageConverter/Properties/Settings.Designer.cs index fdd55af..377588c 100644 --- a/WindowsForms2/Properties/Settings.Designer.cs +++ b/WhipsImageConverter/Properties/Settings.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace WindowsForms2.Properties { +namespace WhipsImageConverter.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] diff --git a/WindowsForms2/Properties/Settings.settings b/WhipsImageConverter/Properties/Settings.settings similarity index 100% rename from WindowsForms2/Properties/Settings.settings rename to WhipsImageConverter/Properties/Settings.settings diff --git a/WindowsForms2/Resources/Emblem.ico b/WhipsImageConverter/Resources/Emblem.ico similarity index 100% rename from WindowsForms2/Resources/Emblem.ico rename to WhipsImageConverter/Resources/Emblem.ico diff --git a/WindowsForms2/Resources/Thumbs.db b/WhipsImageConverter/Resources/Thumbs.db similarity index 100% rename from WindowsForms2/Resources/Thumbs.db rename to WhipsImageConverter/Resources/Thumbs.db diff --git a/WindowsForms2/Resources/dithering.png b/WhipsImageConverter/Resources/dithering.png similarity index 100% rename from WindowsForms2/Resources/dithering.png rename to WhipsImageConverter/Resources/dithering.png diff --git a/WindowsForms2/Resources/nasa_dither.PNG b/WhipsImageConverter/Resources/nasa_dither.PNG similarity index 100% rename from WindowsForms2/Resources/nasa_dither.PNG rename to WhipsImageConverter/Resources/nasa_dither.PNG diff --git a/WindowsForms2/Resources/nasa_nodither.PNG b/WhipsImageConverter/Resources/nasa_nodither.PNG similarity index 100% rename from WindowsForms2/Resources/nasa_nodither.PNG rename to WhipsImageConverter/Resources/nasa_nodither.PNG diff --git a/WindowsForms2/Resources/nasa_original.PNG b/WhipsImageConverter/Resources/nasa_original.PNG similarity index 100% rename from WindowsForms2/Resources/nasa_original.PNG rename to WhipsImageConverter/Resources/nasa_original.PNG diff --git a/WindowsForms2/Resources/nodithering.png b/WhipsImageConverter/Resources/nodithering.png similarity index 100% rename from WindowsForms2/Resources/nodithering.png rename to WhipsImageConverter/Resources/nodithering.png diff --git a/WindowsForms2/Resources/original.png b/WhipsImageConverter/Resources/original.png similarity index 100% rename from WindowsForms2/Resources/original.png rename to WhipsImageConverter/Resources/original.png diff --git a/WindowsForms2/WhipsImageConverter.csproj b/WhipsImageConverter/WhipsImageConverter.csproj similarity index 97% rename from WindowsForms2/WhipsImageConverter.csproj rename to WhipsImageConverter/WhipsImageConverter.csproj index a0aecb4..fc3bca2 100644 --- a/WindowsForms2/WhipsImageConverter.csproj +++ b/WhipsImageConverter/WhipsImageConverter.csproj @@ -7,8 +7,8 @@ {9643C76C-617C-4B4B-AAB9-ABDB489E2AAD} WinExe Properties - WindowsForms2 - Whips Image Converter + WhipsImageConverter + Whip`s Image Converter v4.6.1 512 true diff --git a/WindowsForms2/popup_credits.Designer.cs b/WhipsImageConverter/popup_credits.Designer.cs similarity index 99% rename from WindowsForms2/popup_credits.Designer.cs rename to WhipsImageConverter/popup_credits.Designer.cs index a7f29a2..58febe2 100644 --- a/WindowsForms2/popup_credits.Designer.cs +++ b/WhipsImageConverter/popup_credits.Designer.cs @@ -1,4 +1,4 @@ -namespace WindowsForms2 +namespace WhipsImageConverter { partial class popup_credits { diff --git a/WindowsForms2/popup_credits.cs b/WhipsImageConverter/popup_credits.cs similarity index 97% rename from WindowsForms2/popup_credits.cs rename to WhipsImageConverter/popup_credits.cs index e8a0d70..0a383d6 100644 --- a/WindowsForms2/popup_credits.cs +++ b/WhipsImageConverter/popup_credits.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; using System.Windows.Forms; -namespace WindowsForms2 +namespace WhipsImageConverter { public partial class popup_credits : Form { diff --git a/WindowsForms2/popup_credits.resx b/WhipsImageConverter/popup_credits.resx similarity index 100% rename from WindowsForms2/popup_credits.resx rename to WhipsImageConverter/popup_credits.resx diff --git a/WindowsForms2/popup_imagebox.Designer.cs b/WhipsImageConverter/popup_imagebox.Designer.cs similarity index 99% rename from WindowsForms2/popup_imagebox.Designer.cs rename to WhipsImageConverter/popup_imagebox.Designer.cs index fafb1d9..0da6c37 100644 --- a/WindowsForms2/popup_imagebox.Designer.cs +++ b/WhipsImageConverter/popup_imagebox.Designer.cs @@ -1,4 +1,4 @@ -namespace WindowsForms2 +namespace WhipsImageConverter { partial class popup_imagebox { diff --git a/WindowsForms2/popup_imagebox.cs b/WhipsImageConverter/popup_imagebox.cs similarity index 97% rename from WindowsForms2/popup_imagebox.cs rename to WhipsImageConverter/popup_imagebox.cs index 42a0311..e763c10 100644 --- a/WindowsForms2/popup_imagebox.cs +++ b/WhipsImageConverter/popup_imagebox.cs @@ -11,7 +11,7 @@ using System.IO; using System.Numerics; -namespace WindowsForms2 +namespace WhipsImageConverter { public partial class popup_imagebox : Form { diff --git a/WindowsForms2/popup_imagebox.resx b/WhipsImageConverter/popup_imagebox.resx similarity index 100% rename from WindowsForms2/popup_imagebox.resx rename to WhipsImageConverter/popup_imagebox.resx diff --git a/WindowsForms2/bin/Debug/Whips Image Converter.exe b/WindowsForms2/bin/Debug/Whips Image Converter.exe deleted file mode 100644 index 8d376b7..0000000 Binary files a/WindowsForms2/bin/Debug/Whips Image Converter.exe and /dev/null differ diff --git a/WindowsForms2/bin/Debug/Whips Image Converter.exe.config b/WindowsForms2/bin/Debug/Whips Image Converter.exe.config deleted file mode 100644 index 00bfd11..0000000 --- a/WindowsForms2/bin/Debug/Whips Image Converter.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/WindowsForms2/bin/Debug/Whips Image Converter.pdb b/WindowsForms2/bin/Debug/Whips Image Converter.pdb deleted file mode 100644 index 0133200..0000000 Binary files a/WindowsForms2/bin/Debug/Whips Image Converter.pdb and /dev/null differ diff --git a/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe b/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe deleted file mode 100644 index 681ab77..0000000 Binary files a/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe and /dev/null differ diff --git a/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe.config b/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe.config deleted file mode 100644 index 00bfd11..0000000 --- a/WindowsForms2/bin/Debug/Whips Image Converter.vshost.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/WindowsForms2/bin/Release/Whips Image Converter.exe b/WindowsForms2/bin/Release/Whips Image Converter.exe deleted file mode 100644 index b58583e..0000000 Binary files a/WindowsForms2/bin/Release/Whips Image Converter.exe and /dev/null differ