Image Class : Icon Image « 2D Graphics « C# / C Sharp






Image Class

Image Class
 
/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds

Publisher: Apress
ISBN: 159059035X
*/

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace ImageClass
{
    /// <summary>
    /// Summary description for ImageClass.
    /// </summary>
    public class ImageClass : System.Windows.Forms.Form
    {
    private System.Windows.Forms.OpenFileDialog ofdBitmap;
    private System.Windows.Forms.Button cmdOpen;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;
    private System.Windows.Forms.GroupBox groupBox1;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Label label3;
    private System.Windows.Forms.Label label4;
    private System.Windows.Forms.Label label5;
    private System.Windows.Forms.Label lblHT;
    private System.Windows.Forms.Label lblWidth;
    private System.Windows.Forms.Label lblHdpi;
    private System.Windows.Forms.Label lblVdpi;
    private System.Windows.Forms.Label lblFormat;
    private System.Windows.Forms.Label label6;
    private System.Windows.Forms.Label lblSize;
    private System.Windows.Forms.Label lblDIM;
    private System.Windows.Forms.Label label8;
    private System.Windows.Forms.Button cmdSetRes;

    #region Class local variables
    Bitmap Bmp;
    RectangleF BMPContainer;
    #endregion

        public ImageClass()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

      ofdBitmap.Filter= "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF";
      ofdBitmap.InitialDirectory = "";
    }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
      if (Bmp != null)
        Bmp.Dispose();
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
      this.ofdBitmap = new System.Windows.Forms.OpenFileDialog();
      this.cmdOpen = new System.Windows.Forms.Button();
      this.groupBox1 = new System.Windows.Forms.GroupBox();
      this.label1 = new System.Windows.Forms.Label();
      this.label2 = new System.Windows.Forms.Label();
      this.label3 = new System.Windows.Forms.Label();
      this.label4 = new System.Windows.Forms.Label();
      this.label5 = new System.Windows.Forms.Label();
      this.lblHT = new System.Windows.Forms.Label();
      this.lblWidth = new System.Windows.Forms.Label();
      this.lblHdpi = new System.Windows.Forms.Label();
      this.lblVdpi = new System.Windows.Forms.Label();
      this.lblFormat = new System.Windows.Forms.Label();
      this.label6 = new System.Windows.Forms.Label();
      this.lblSize = new System.Windows.Forms.Label();
      this.lblDIM = new System.Windows.Forms.Label();
      this.label8 = new System.Windows.Forms.Label();
      this.cmdSetRes = new System.Windows.Forms.Button();
      this.groupBox1.SuspendLayout();
      this.SuspendLayout();
      // 
      // ofdBitmap
      // 
      this.ofdBitmap.FileOk += new System.ComponentModel.CancelEventHandler(this.OpenFile);
      // 
      // cmdOpen
      // 
      this.cmdOpen.Location = new System.Drawing.Point(16, 320);
      this.cmdOpen.Name = "cmdOpen";
      this.cmdOpen.Size = new System.Drawing.Size(72, 32);
      this.cmdOpen.TabIndex = 0;
      this.cmdOpen.Text = "Open";
      this.cmdOpen.Click += new System.EventHandler(this.Open);
      // 
      // groupBox1
      // 
      this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                            this.lblDIM,
                                                                            this.label8,
                                                                            this.lblSize,
                                                                            this.label6,
                                                                            this.lblFormat,
                                                                            this.lblVdpi,
                                                                            this.lblHdpi,
                                                                            this.lblWidth,
                                                                            this.lblHT,
                                                                            this.label5,
                                                                            this.label4,
                                                                            this.label3,
                                                                            this.label2,
                                                                            this.label1});
      this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.groupBox1.Location = new System.Drawing.Point(144, 80);
      this.groupBox1.Name = "groupBox1";
      this.groupBox1.Size = new System.Drawing.Size(224, 224);
      this.groupBox1.TabIndex = 2;
      this.groupBox1.TabStop = false;
      this.groupBox1.Text = "Attributes";
      // 
      // label1
      // 
      this.label1.Location = new System.Drawing.Point(8, 24);
      this.label1.Name = "label1";
      this.label1.Size = new System.Drawing.Size(64, 16);
      this.label1.TabIndex = 0;
      this.label1.Text = "Height";
      // 
      // label2
      // 
      this.label2.Location = new System.Drawing.Point(8, 72);
      this.label2.Name = "label2";
      this.label2.Size = new System.Drawing.Size(64, 16);
      this.label2.TabIndex = 1;
      this.label2.Text = "Hdpi";
      // 
      // label3
      // 
      this.label3.Location = new System.Drawing.Point(8, 48);
      this.label3.Name = "label3";
      this.label3.Size = new System.Drawing.Size(64, 16);
      this.label3.TabIndex = 2;
      this.label3.Text = "Width";
      // 
      // label4
      // 
      this.label4.Location = new System.Drawing.Point(8, 96);
      this.label4.Name = "label4";
      this.label4.Size = new System.Drawing.Size(64, 16);
      this.label4.TabIndex = 3;
      this.label4.Text = "Vdpi";
      // 
      // label5
      // 
      this.label5.Location = new System.Drawing.Point(8, 120);
      this.label5.Name = "label5";
      this.label5.Size = new System.Drawing.Size(64, 16);
      this.label5.TabIndex = 4;
      this.label5.Text = "Format";
      // 
      // lblHT
      // 
      this.lblHT.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblHT.Location = new System.Drawing.Point(80, 24);
      this.lblHT.Name = "lblHT";
      this.lblHT.Size = new System.Drawing.Size(136, 16);
      this.lblHT.TabIndex = 5;
      // 
      // lblWidth
      // 
      this.lblWidth.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblWidth.Location = new System.Drawing.Point(80, 48);
      this.lblWidth.Name = "lblWidth";
      this.lblWidth.Size = new System.Drawing.Size(136, 16);
      this.lblWidth.TabIndex = 6;
      // 
      // lblHdpi
      // 
      this.lblHdpi.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblHdpi.Location = new System.Drawing.Point(80, 72);
      this.lblHdpi.Name = "lblHdpi";
      this.lblHdpi.Size = new System.Drawing.Size(136, 16);
      this.lblHdpi.TabIndex = 7;
      // 
      // lblVdpi
      // 
      this.lblVdpi.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblVdpi.Location = new System.Drawing.Point(80, 96);
      this.lblVdpi.Name = "lblVdpi";
      this.lblVdpi.Size = new System.Drawing.Size(136, 16);
      this.lblVdpi.TabIndex = 8;
      // 
      // lblFormat
      // 
      this.lblFormat.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblFormat.Location = new System.Drawing.Point(80, 120);
      this.lblFormat.Name = "lblFormat";
      this.lblFormat.Size = new System.Drawing.Size(136, 16);
      this.lblFormat.TabIndex = 9;
      // 
      // label6
      // 
      this.label6.Location = new System.Drawing.Point(8, 160);
      this.label6.Name = "label6";
      this.label6.Size = new System.Drawing.Size(64, 16);
      this.label6.TabIndex = 10;
      this.label6.Text = "Size";
      // 
      // lblSize
      // 
      this.lblSize.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblSize.Location = new System.Drawing.Point(80, 160);
      this.lblSize.Name = "lblSize";
      this.lblSize.Size = new System.Drawing.Size(136, 16);
      this.lblSize.TabIndex = 11;
      // 
      // lblDIM
      // 
      this.lblDIM.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.lblDIM.Location = new System.Drawing.Point(80, 184);
      this.lblDIM.Name = "lblDIM";
      this.lblDIM.Size = new System.Drawing.Size(136, 16);
      this.lblDIM.TabIndex = 13;
      // 
      // label8
      // 
      this.label8.Location = new System.Drawing.Point(8, 184);
      this.label8.Name = "label8";
      this.label8.Size = new System.Drawing.Size(64, 16);
      this.label8.TabIndex = 12;
      this.label8.Text = "Dimensions";
      // 
      // cmdSetRes
      // 
      this.cmdSetRes.Location = new System.Drawing.Point(144, 320);
      this.cmdSetRes.Name = "cmdSetRes";
      this.cmdSetRes.Size = new System.Drawing.Size(128, 32);
      this.cmdSetRes.TabIndex = 3;
      this.cmdSetRes.Text = "Reset Resolution";
      this.cmdSetRes.Click += new System.EventHandler(this.SetRes);
      // 
      // ImageClass
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(392, 373);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                  this.cmdSetRes,
                                                                  this.groupBox1,
                                                                  this.cmdOpen});
      this.MaximizeBox = false;
      this.MinimizeBox = false;
      this.Name = "ImageClass";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
      this.Text = "ImageClass";
      this.Load += new System.EventHandler(this.ImageClass_Load);
      this.groupBox1.ResumeLayout(false);
      this.ResumeLayout(false);

    }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new ImageClass());
        }

    private void ImageClass_Load(object sender, System.EventArgs e)
    {
    }

    protected override void OnPaint( PaintEventArgs e)
    {
      Graphics G = e.Graphics;
      if ( Bmp != null )
      {
        //OK Folks. This is a BitBlt!
        G.DrawImage(Bmp, BMPContainer);
      }

      base.OnPaint(e);
    }

    private void Open(object sender, System.EventArgs e)
    {
      ofdBitmap.ShowDialog();
    }

    private void OpenFile(object sender, 
                          System.ComponentModel.CancelEventArgs e)
    {
      //Wondering what sender is?  Use reflection!
      if ( !( sender is System.Windows.Forms.OpenFileDialog ) )
        return;

      Bmp = new Bitmap( ofdBitmap.FileName );
      if ( Bmp != null )
      {
        ShowStats();
        DrawBMP();
      }
    }

    private void SetRes(object sender, System.EventArgs e)
    {
      if ( Bmp != null )
      {
        Bmp.SetResolution(150, 150);
        DrawBMP();
      }
    }

    private void DrawBMP()
    {
      if ( Bmp != null )
      {
        //Invalidate only the area where the image will be drawn
        Graphics G = this.CreateGraphics();
        GraphicsUnit GU = G.PageUnit;
        BMPContainer = Bmp.GetBounds( ref GU ); //X,Y = 0
        ShowStats();
        this.Invalidate( Rectangle.Round( BMPContainer ) );
        G.Dispose();
      }
    }
    private void ShowStats()
    {
      if ( Bmp != null )
      {
        //Show some properties here
        lblHT.Text = Bmp.Height.ToString();
        lblWidth.Text = Bmp.Width.ToString();
        lblVdpi.Text = Bmp.VerticalResolution.ToString();
        lblHdpi.Text = Bmp.HorizontalResolution.ToString();
        lblFormat.Text = Bmp.PixelFormat.ToString();
        lblSize.Text = Bmp.Size.ToString();
        lblDIM.Text = Bmp.PhysicalDimension.ToString();
      }
    }
    }
}


           
         
  








Related examples in the same category

1.Image Paint Simple DemoImage Paint Simple Demo
2.Image Warper AppImage Warper App
3.Draw imageDraw image
4.Image Icon FormImage Icon Form
5.Icon Image DrawIcon Image Draw
6.MetaFile and DrawMetaFile and Draw
7.Picture ControlsPicture Controls
8.Control PaletteControl Palette
9.Cube ImageCube Image
10.Image Zoom 1Image Zoom 1
11.Image FlipImage Flip
12.Icon Extraction