diff options
Diffstat (limited to 'Wrapper/FreeImage.NET/cs/Samples/Sample 04 - Getting bitmap informations/MainForm.cs')
-rw-r--r-- | Wrapper/FreeImage.NET/cs/Samples/Sample 04 - Getting bitmap informations/MainForm.cs | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/Wrapper/FreeImage.NET/cs/Samples/Sample 04 - Getting bitmap informations/MainForm.cs b/Wrapper/FreeImage.NET/cs/Samples/Sample 04 - Getting bitmap informations/MainForm.cs new file mode 100644 index 0000000..cf72567 --- /dev/null +++ b/Wrapper/FreeImage.NET/cs/Samples/Sample 04 - Getting bitmap informations/MainForm.cs @@ -0,0 +1,120 @@ +using System; +using System.Windows.Forms; +using FreeImageAPI; + +namespace Sample04 +{ + public partial class MainForm : Form + { + string message = null; + + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + + public MainForm() + { + InitializeComponent(); + FreeImageEngine.Message += new OutputMessageFunction(FreeImage_Message); + } + + ~MainForm() + { + FreeImageEngine.Message -= new OutputMessageFunction(FreeImage_Message); + } + + void FreeImage_Message(FREE_IMAGE_FORMAT fif, string message) + { + if (this.message == null) + { + this.message = message; + } + else + { + this.message += "\n" + message; + } + } + + private void bOpenFile_Click(object sender, EventArgs e) + { + // Resetting filename + ofd.FileName = ""; + + // Was a file selected + if (ofd.ShowDialog() == DialogResult.OK) + { + // Format is stored in 'format' on successfull load. + FREE_IMAGE_FORMAT format = FREE_IMAGE_FORMAT.FIF_UNKNOWN; + + // Try loading the file + FIBITMAP dib = FreeImage.LoadEx(ofd.FileName, ref format); + + try + { + // Error handling + if (dib.IsNull) + { + // Chech whether FreeImage generated an error messe + if (message != null) + { + MessageBox.Show("File could not be loaded!\nError:{0}", message); + } + else + { + MessageBox.Show("File could not be loaded!", message); + } + return; + } + + // Read width + lWidth.Text = String.Format("Width: {0}", FreeImage.GetWidth(dib)); + + // Read height + lHeight.Text = String.Format("Width: {0}", FreeImage.GetWidth(dib)); + + // Read color depth + lBPP.Text = String.Format("Color Depth: {0}", FreeImage.GetBPP(dib)); + + // Read red bitmask (16 - 32 bpp) + lRedMask.Text = String.Format("Red Mask: 0x{0:X8}", FreeImage.GetRedMask(dib)); + + // Read green bitmask (16 - 32 bpp) + lBlueMask.Text = String.Format("Green Mask: 0x{0:X8}", FreeImage.GetGreenMask(dib)); + + // Read blue bitmask (16 - 32 bpp) + lGreenMask.Text = String.Format("Blue Mask: 0x{0:X8}", FreeImage.GetBlueMask(dib)); + + // Read image type (FI_BITMAP, FIT_RGB16, FIT_COMPLEX ect) + lImageType.Text = String.Format("Image Type: {0}", FreeImage.GetImageType(dib)); + + // Read x-axis dpi + lDPIX.Text = String.Format("DPI X: {0}", FreeImage.GetResolutionX(dib)); + + // Read y-axis dpi + lDPIY.Text = String.Format("DPI Y: {0}", FreeImage.GetResolutionY(dib)); + + // Read file format + lFormat.Text = String.Format("File Format: {0}", FreeImage.GetFormatFromFIF(format)); + } + catch + { + } + + // Always unload bitmap + FreeImage.UnloadEx(ref dib); + + // Reset the error massage buffer + message = null; + } + // No file was selected + else + { + MessageBox.Show("No file loaded.", "Error"); + } + } + } +}
\ No newline at end of file |