Csharp/C Sharp/2D Graphics/Image

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Center an Image (VerticalResolution, HorizontalResolution)

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class CenterImage: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new CenterImage());
    }
    public CenterImage()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.PageUnit = GraphicsUnit.Pixel;
         grfx.PageScale = 1;
  
         RectangleF rectf = grfx.VisibleClipBounds;
  
         float cxImage = grfx.DpiX * image.Width / 
                                            image.HorizontalResolution;
         float cyImage = grfx.DpiY * image.Height / 
                                            image.VerticalResolution;
  
         grfx.DrawImage(image, (rectf.Width  - cxImage) / 2, 
                               (rectf.Height - cyImage) / 2);
    }

}

</source>


Center Pixel-Size Image by using Image.Width and Image.Height

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class CenterPixelSizeImage: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new CenterPixelSizeImage());
    }
    public CenterPixelSizeImage()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.DrawImage(image, (cx - image.Width)  / 2,
                               (cy - image.Height) / 2,
                               image.Width, image.Height);
    }

}

</source>


Clone Image

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     Rectangle r = new Rectangle(120, 120, 400, 400);
     Bitmap bmp2 = bmp.Clone(r, System.Drawing.Imaging.PixelFormat.DontCare);
     g.DrawImage(bmp, new Rectangle(0, 0, 200, 200));
     g.DrawImage(bmp2, new Rectangle(210, 0, 200, 200));
     bmp2.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


Draw image based on its size

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
     g.DrawImage(bmp, r, r, GraphicsUnit.Pixel);
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>


Draw on Pixel-Size Image

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class DrawOnPixelSizeImage: Form {

    Image  image = Image.FromFile("Color.jpg");
    string str = "www.nfex.ru";
  
    public static void Main()
    {
         Application.Run(new DrawOnPixelSizeImage());
    }
    public DrawOnPixelSizeImage()
    {
         ResizeRedraw = true;
         
         Graphics grfxImage  = Graphics.FromImage(image);
         Graphics grfxScreen = CreateGraphics();
  
         Font font = new Font(Font.FontFamily, grfxScreen.DpiY / grfxImage.DpiY * Font.SizeInPoints);
  
         SizeF sizef = grfxImage.MeasureString(str, font);
  
         grfxImage.DrawString(str, font, Brushes.White, image.Width - sizef.Width, 0);
         grfxImage.Dispose();
         grfxScreen.Dispose();
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }   
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.DrawImage(image, 0, 0, image.Width, image.Height);
         grfx.DrawString(str, Font, new SolidBrush(clr), image.Width, 0);
    }

}

</source>


Draw Partial Image

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class PartialImage: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new PartialImage());
    }
    public PartialImage()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }      
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Rectangle rect = new Rectangle(95, 5, 50, 55);
  
         grfx.DrawImage(image, 0, 0, rect, GraphicsUnit.Pixel);
    }

}

</source>


Draw text on an Image

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class DrawOnImage: Form {

    Image  image = Image.FromFile("Color.jpg");
    string str = "www.nfex.ru";
  
    public static void Main()
    {
         Application.Run(new DrawOnImage());
    }
    public DrawOnImage()
    {
         ResizeRedraw = true; 
         Graphics grfxImage = Graphics.FromImage(image);
  
         grfxImage.PageUnit = GraphicsUnit.Inch;
         grfxImage.PageScale = 1;
  
         SizeF sizef = grfxImage.MeasureString(str, Font);
  
         grfxImage.DrawString(str, Font, Brushes.White, grfxImage.VisibleClipBounds.Width - sizef.Width, 0);
  
         grfxImage.Dispose();
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }       
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.PageUnit = GraphicsUnit.Pixel;
         grfx.DrawImage(image, 0, 0);
         grfx.DrawString(str, Font, new SolidBrush(clr),
                   grfx.DpiX * image.Width / image.HorizontalResolution, 0);
    }

}

</source>


Fill Ellipse with image based Texture Brush

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form{

  private System.ruponentModel.Container components = null;
  private Image theImage;
  private Image smallImage;
  public Form1() {
     InitializeComponent();
     SetStyle(ControlStyles.Opaque, true);
     theImage = new Bitmap("Winter.jpg");
     smallImage = new Bitmap(theImage,new Size(theImage.Width / 2, theImage.Height / 2));
  }
   protected override void OnPaint(PaintEventArgs e){
      Graphics g = e.Graphics;
      g.FillRectangle(Brushes.White, ClientRectangle);
      Brush tBrush = new TextureBrush(smallImage, new Rectangle(0, 0,smallImage.Width, smallImage.Height));
      g.FillEllipse(tBrush, ClientRectangle);
      tBrush.Dispose();
   }
    private void InitializeComponent() {
       this.ruponents = new System.ruponentModel.Container();
       this.Size = new System.Drawing.Size(300,300);
       this.Text = "Form1";
    }
    static void Main() {
        Application.Run(new Form1());
    }

}


      </source>


Get Image Resolution and Image size and Display size

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     g.DrawImage(bmp, 0, 0);
     Console.WriteLine("Screen resolution: " + g.DpiX + "DPI");
     Console.WriteLine("Image resolution: " + bmp.HorizontalResolution + "DPI");
     Console.WriteLine("Image Width: " + bmp.Width);
     Console.WriteLine("Image Height: " + bmp.Height);
     SizeF s = new SizeF(bmp.Width * (g.DpiX / bmp.HorizontalResolution),
               bmp.Height * (g.DpiY / bmp.VerticalResolution));
     Console.WriteLine("Display size of image: " + s);
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


Image At Points (Draw part of the image)

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class ImageAtPoints: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new ImageAtPoints());
    }
    public ImageAtPoints()
    {
         ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }        
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.DrawImage(image, new Point[] { new Point(cx / 2, 0),
                                             new Point(cx,     cy / 2),
                                             new Point(0,      cy / 2)});
              
       
    }

}

</source>


Image Flipping and Rotating

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form {

   private System.Windows.Forms.GroupBox groupBox1;
   private System.Windows.Forms.CheckBox checkBox1;
   private System.Windows.Forms.RadioButton radioButton1;
   Image im = null;
   Image im2 = null;
   private System.Windows.Forms.Label label1;
   private System.Windows.Forms.RadioButton radioButton2;
   private System.Windows.Forms.RadioButton radioButton3;
   public Form1() {
       this.groupBox1 = new System.Windows.Forms.GroupBox();
       this.radioButton1 = new System.Windows.Forms.RadioButton();
       this.checkBox1 = new System.Windows.Forms.CheckBox();
       this.label1 = new System.Windows.Forms.Label();
       this.radioButton2 = new System.Windows.Forms.RadioButton();
       this.radioButton3 = new System.Windows.Forms.RadioButton();
       this.groupBox1.SuspendLayout();
       this.SuspendLayout();
       this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                         this.radioButton3,
                                         this.radioButton2,
                                         this.radioButton1,
                                         this.checkBox1});
       this.groupBox1.Location = new System.Drawing.Point(312, 64);
       this.groupBox1.Size = new System.Drawing.Size(248, 80);
       this.radioButton1.Location = new System.Drawing.Point(120, 16);
       this.radioButton1.Size = new System.Drawing.Size(112, 24);
       this.checkBox1.Location = new System.Drawing.Point(16, 16);
       this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
       this.label1.Location = new System.Drawing.Point(8, 8);
       this.label1.Size = new System.Drawing.Size(304, 200);
       this.radioButton2.Location = new System.Drawing.Point(16, 48);
       this.radioButton3.Location = new System.Drawing.Point(120, 48);
       this.radioButton3.Size = new System.Drawing.Size(120, 24);
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(560, 214);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.label1,
                                     this.groupBox1});
       this.groupBox1.ResumeLayout(false);
       this.ResumeLayout(false);
       this.radioButton1.Checked = false;
       this.label1.Text = "";
       this.groupBox1.Text = "RotateFlipType";
       this.checkBox1.Text = "Paint";
       this.radioButton1.Text = "Rotate180FlipY";
       this.radioButton2.Text = "Rotate180FlipX";
       this.radioButton3.Text = "Rotate180FlipNone";
       this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
       this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
       this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
   }
   [STAThread]
   static void Main() {
       Application.Run(new Form1());
   }
   protected override void OnPaint(PaintEventArgs e) { RotateFlip(); }
   private void label1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { RotateFlip(); }
   private void checkBox1_CheckedChanged(object sender, System.EventArgs e) { RotateFlip(); }
   private void radioButtons_CheckedChanged(object sender, System.EventArgs e) { RotateFlip(); }
   protected void RotateFlip() {
       Graphics g = Graphics.FromHwnd(this.label1.Handle);
       Brush b = new SolidBrush(this.label1.BackColor);
       if (this.checkBox1.Checked) {
           if (im == null) ReadImage();
           Graphics g2 = Graphics.FromImage(im); 
           FontFamily ff = new FontFamily("Times New Roman");
           Font f = new Font(ff, 25, FontStyle.Bold);
           g2.DrawString("HIMALAYA", f, new SolidBrush(Color.Yellow), 170, 210);
           g2.Dispose();
           im2 = (Image)im.Clone();
           int w2 = label1.Width / 2, h2 = label1.Height / 2;
           g.DrawImage(im, 0, 0, w2, h2);
           if (this.radioButton1.Checked){
               im2.RotateFlip(RotateFlipType.Rotate180FlipY);
               g.DrawImage(im2, w2, 0, w2, h2);
           } else 
               g.FillRectangle(b, w2, 0, w2, h2);
           if (this.radioButton2.Checked) {
               im2.RotateFlip(RotateFlipType.Rotate180FlipX);
               g.DrawImage(im2, 0, h2, w2, h2);
           } else 
               g.FillRectangle(b, 0, h2, w2, h2);
           if (this.radioButton3.Checked) {
               im2.RotateFlip(RotateFlipType.Rotate180FlipNone);
               g.DrawImage(im2, w2, h2, w2, h2);
           } else 
               g.FillRectangle(b, w2, h2, w2, h2);
           im2.Dispose();
       } else Clear(g);
       b.Dispose(); g.Dispose();
   }
   protected void ReadImage() {
       string path = "a.bmp";
       im = Image.FromFile(path);
       this.radioButton1.Enabled = true;
       this.radioButton2.Enabled = true;
       this.radioButton3.Enabled = true;
   }
   protected void Clear(Graphics g) {
       g.Clear(this.BackColor);
       g.Dispose();
       im = null;
       im2 = null;
       this.radioButton1.Checked = false;
       this.radioButton2.Checked = false;
       this.radioButton3.Checked = false;
       this.radioButton1.Enabled = false;
       this.radioButton2.Enabled = false;
       this.radioButton3.Enabled = false;
   }

}

</source>


Image.FromStream: load image from stream

<source lang="csharp"> using System; using System.Net; using System.IO; using System.Drawing; using System.Windows.Forms; public class MainClass {

   public static void Main() {
       WebRequest requestPic = WebRequest.Create("http://www.your.ru/1.jpg");
       WebRequest requestHtml = WebRequest.Create("http://www.your.ru");
       WebResponse responsePic = requestPic.GetResponse();
       WebResponse responseHtml = requestHtml.GetResponse();
       Image img = Image.FromStream(responsePic.GetResponseStream());
       using (StreamReader r = new StreamReader(responseHtml.GetResponseStream())) {
           Console.WriteLine(r.ReadToEnd());
       }
   }

}

</source>


Image.GetThumbnailImage

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.IO; public class Form1 : System.Windows.Forms.Form {

   [STAThread]
   static void Main() {
       Application.Run(new Form1());
   }
   protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
       string p = "s.JPG";
       Image i = Image.FromFile(p);
       Image tn = i.GetThumbnailImage(50, 50, null, IntPtr.Zero);  // <=>(IntPtr)0
       e.Graphics.DrawImage(tn, 100, 0, tn.Width, tn.Height);
       e.Graphics.Dispose();
   }

}

</source>


Image Open

<source lang="csharp"> using System; using System.Drawing; using System.IO; using System.Windows.Forms;

class ImageOpen: Form {

    protected string strProgName;
    protected string strFileName;
    protected Image  image;
  
    public static void Main()
    {
         Application.Run(new ImageOpen());
    }
    public ImageOpen()
    {
         ResizeRedraw = true;
  
         Menu = new MainMenu();
         Menu.MenuItems.Add("&File");
         Menu.MenuItems[0].MenuItems.Add(new MenuItem("&Open...", 
                                  new EventHandler(MenuFileOpenOnClick),
                                  Shortcut.CtrlO));
    }
    void MenuFileOpenOnClick(object obj, EventArgs ea)
    {
         OpenFileDialog dlg = new OpenFileDialog();
  
         dlg.Filter = "All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;" +
                             "*.jfif;*.png;*.tif;*.tiff;*.wmf;*.emf|" +
                      "Windows Bitmap (*.bmp)|*.bmp|" +
                      "Windows Icon (*.ico)|*.ico|" +
                      "Graphics Interchange Format (*.gif)|*.gif|" +
                      "JPEG File Interchange Format (*.jpg)|" +
                             "*.jpg;*.jpeg;*.jfif|" +
                      "Portable Network Graphics (*.png)|*.png|" +
                      "Tag Image File Format (*.tif)|*.tif;*.tiff|" +
                      "Windows Metafile (*.wmf)|*.wmf|" +
                      "Enhanced Metafile (*.emf)|*.emf|" +
                      "All Files (*.*)|*.*";
  
         if (dlg.ShowDialog() == DialogResult.OK)
         {    
  
              try
              {
                   image = Image.FromFile(dlg.FileName);
              }
              catch (Exception exc)
              {
                   Console.WriteLine(exc.Message);
                   return;
              }
              strFileName = dlg.FileName;
              Text = Path.GetFileName(strFileName);
              Invalidate();
         }
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics grfx = pea.Graphics;
  
         if (image != null)
              grfx.DrawImage(image, 0, 0);
    }

}

</source>


Image Reflection

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class ImageReflection: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new ImageReflection());
    }
    public ImageReflection()
    {
         ResizeRedraw = true;
         
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         int cxImage = image.Width;
         int cyImage = image.Height;
  
         grfx.DrawImage(image, cx / 2, cy / 2,  cxImage,  cyImage);
         grfx.DrawImage(image, cx / 2, cy / 2, -cxImage,  cyImage);
         grfx.DrawImage(image, cx / 2, cy / 2,  cxImage, -cyImage);
         grfx.DrawImage(image, cx / 2, cy / 2, -cxImage, -cyImage);
    }

}

</source>


Image Save

<source lang="csharp"> using System; using System.Drawing; using System.IO; using System.Windows.Forms;

class ImageOpen: Form {

    protected string strProgName;
    protected string strFileName;
    protected Image  image;
    MenuItem miSaveAs;
    public static void Main()
    {
         Application.Run(new ImageOpen());
    }
    public ImageOpen()
    {
         ResizeRedraw = true;
  
         Menu = new MainMenu();
         Menu.MenuItems.Add("&File");
         Menu.MenuItems[0].MenuItems.Add(new MenuItem("&Open...", 
                                  new EventHandler(MenuFileOpenOnClick),
                                  Shortcut.CtrlO));
         Menu.MenuItems[0].Popup += new EventHandler(MenuFileOnPopup);
         miSaveAs = new MenuItem("Save &As...");
         miSaveAs.Click += new EventHandler(MenuFileSaveAsOnClick);
         Menu.MenuItems[0].MenuItems.Add(miSaveAs);
    }
    void MenuFileOnPopup(object obj, EventArgs ea)
    {
         miSaveAs.Enabled = (image != null);
    }
    void MenuFileSaveAsOnClick(object obj, EventArgs ea)
    {
         SaveFileDialog savedlg = new SaveFileDialog();
  
         savedlg.InitialDirectory = Path.GetDirectoryName(strFileName);
         savedlg.FileName = Path.GetFileNameWithoutExtension(strFileName);
         savedlg.AddExtension = true;
         savedlg.Filter = "Windows Bitmap (*.bmp)|*.bmp|" +
                          "Graphics Interchange Format (*.gif)|*.gif|" +
                          "JPEG File Interchange Format (*.jpg)|" +
                             "*.jpg;*.jpeg;*.jfif|" +
                          "Portable Network Graphics (*.png)|*.png|" +
                          "Tagged Imaged File Format (*.tif)|*.tif;*.tiff";
  
         if (savedlg.ShowDialog() == DialogResult.OK)
         {
              try
              {
                   image.Save(savedlg.FileName);
              }
              catch (Exception exc)
              {
                   MessageBox.Show(exc.Message, Text);
                   return;
              }
              strFileName = savedlg.FileName;
              Text = strProgName + " - " + Path.GetFileName(strFileName);
         }
    }
    void MenuFileOpenOnClick(object obj, EventArgs ea)
    {
         OpenFileDialog dlg = new OpenFileDialog();
  
         dlg.Filter = "All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;" +
                             "*.jfif;*.png;*.tif;*.tiff;*.wmf;*.emf|" +
                      "Windows Bitmap (*.bmp)|*.bmp|" +
                      "Windows Icon (*.ico)|*.ico|" +
                      "Graphics Interchange Format (*.gif)|*.gif|" +
                      "JPEG File Interchange Format (*.jpg)|" +
                             "*.jpg;*.jpeg;*.jfif|" +
                      "Portable Network Graphics (*.png)|*.png|" +
                      "Tag Image File Format (*.tif)|*.tif;*.tiff|" +
                      "Windows Metafile (*.wmf)|*.wmf|" +
                      "Enhanced Metafile (*.emf)|*.emf|" +
                      "All Files (*.*)|*.*";
  
         if (dlg.ShowDialog() == DialogResult.OK)
         {    
  
              try
              {
                   image = Image.FromFile(dlg.FileName);
              }
              catch (Exception exc)
              {
                   Console.WriteLine(exc.Message);
                   return;
              }
              strFileName = dlg.FileName;
              Text = Path.GetFileName(strFileName);
              Invalidate();
         }
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics grfx = pea.Graphics;
  
         if (image != null)
              grfx.DrawImage(image, 0, 0);
    }
    

}

</source>


Image Scale Isotropic

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class ImageScaleIsotropic: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new ImageScaleIsotropic());
    }
    public ImageScaleIsotropic()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Rectangle rect = new Rectangle(0, 0, cx, cy);
    
         SizeF sizef = new SizeF(image.Width / image.HorizontalResolution,
                                 image.Height / image.VerticalResolution);
  
         float fScale = Math.Min(rect.Width  / sizef.Width,
                                 rect.Height / sizef.Height);
  
         sizef.Width  *= fScale;
         sizef.Height *= fScale;
         
         grfx.DrawImage(image, rect.X + (rect.Width  - sizef.Width ) / 2,
                               rect.Y + (rect.Height - sizef.Height) / 2,
                               sizef.Width, sizef.Height);
    }

}

</source>


Image Scale To Rectangle

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class ImageScaleToRectangle: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new ImageScaleToRectangle());
    }
    public ImageScaleToRectangle()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.DrawImage(image, 0, 0, cx, cy);
    }

}

</source>


Image Zoom

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form {

   private System.Windows.Forms.Label label1= new System.Windows.Forms.Label();
   private System.Windows.Forms.GroupBox groupBox1= new System.Windows.Forms.GroupBox();
   private System.Windows.Forms.RadioButton radioButton1= new System.Windows.Forms.RadioButton();
   private System.Windows.Forms.RadioButton radioButton2= new System.Windows.Forms.RadioButton();
   private System.Windows.Forms.RadioButton radioButton3= new System.Windows.Forms.RadioButton();
   private System.Windows.Forms.RadioButton radioButton4= new System.Windows.Forms.RadioButton();
   private System.Windows.Forms.Label label2= new System.Windows.Forms.Label();
   private System.Windows.Forms.CheckBox checkBox1= new System.Windows.Forms.CheckBox();
   Image im = null;
   Image im2 = null;
   public Form1() {
       this.groupBox1.SuspendLayout();
       this.SuspendLayout();
       this.label1.Location = new System.Drawing.Point(8, 16);
       this.label1.Size = new System.Drawing.Size(200, 240);
       this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                         this.checkBox1,
                                         this.radioButton1,
                                         this.radioButton2,
                                         this.radioButton3,
                                         this.radioButton4});
       this.groupBox1.Location = new System.Drawing.Point(232, 48);
       this.groupBox1.Size = new System.Drawing.Size(72, 128);
       this.checkBox1.Location = new System.Drawing.Point(8, 32);
       this.checkBox1.Size = new System.Drawing.Size(56, 24);
       this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
       this.radioButton1.Location = new System.Drawing.Point(8, 64);
       this.radioButton1.Size = new System.Drawing.Size(16, 24);
       this.radioButton2.Location = new System.Drawing.Point(40, 64);
       this.radioButton2.Size = new System.Drawing.Size(16, 24);
       this.radioButton3.Location = new System.Drawing.Point(8, 96);
       this.radioButton3.Size = new System.Drawing.Size(16, 24);
       this.radioButton4.Location = new System.Drawing.Point(40, 96);
       this.radioButton4.Size = new System.Drawing.Size(16, 24);
       this.label2.Location = new System.Drawing.Point(328, 16);
       this.label2.Size = new System.Drawing.Size(200, 240);
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(536, 266);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.groupBox1,
                                     this.label1,
                                     this.label2});
       this.groupBox1.ResumeLayout(false);
       this.ResumeLayout(false);
       this.Text = "Zooming";
       this.label1.Text = "";
       this.groupBox1.Text = "Zoom";
       this.checkBox1.Text = "Paint";
       this.radioButton1.Checked = false;
       this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
       this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
       this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
       this.radioButton4.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
   }
   [STAThread]
   static void Main() {
       Application.Run(new Form1());
   }
   protected override void OnPaint(PaintEventArgs e) { ImageZoom(); }
   private void checkBox1_CheckedChanged(object sender, System.EventArgs e) { ImageZoom(); }
   private void radioButtons_CheckedChanged(object sender, System.EventArgs e) { ImageZoom(); }
   protected void ImageZoom() {
       Graphics g1 = Graphics.FromHwnd(this.label1.Handle);
       Graphics g2 = Graphics.FromHwnd(this.label2.Handle);
       Rectangle rec;
       Rectangle recPart;
       if (this.checkBox1.Checked) {
           if (im == null) ReadImage();
           rec = new Rectangle(0, 0, label1.Width, label1.Height);
           g1.DrawImage(im, rec);
           recPart = new Rectangle(im.Width / 4, im.Height / 4, im.Width / 2, im.Height / 2);
           if (this.radioButton1.Checked)
               recPart = new Rectangle(0, 0, im.Width / 2, im.Height / 2);
           if (this.radioButton2.Checked)
               recPart = new Rectangle(im.Width / 2, 0, im.Width / 2, im.Height / 2);
           if (this.radioButton3.Checked)
               recPart = new Rectangle(0, im.Height / 2, im.Width / 2, im.Height / 2);
           if (this.radioButton4.Checked)
               recPart = new Rectangle(im.Width / 2, im.Height / 2, im.Width / 2, im.Height / 2);
           g2.DrawImage(im, rec, recPart, GraphicsUnit.Pixel);
       } else {
           Clear(g1);
           Clear(g2);
       }
       g1.Dispose(); g2.Dispose();
   }
   protected void ReadImage() {
       string path = "3.BMP";
       im = Image.FromFile(path);
       this.radioButton1.Enabled = true;
       this.radioButton2.Enabled = true;
       this.radioButton3.Enabled = true;
       this.radioButton4.Enabled = true;
   }
   protected void Clear(Graphics g) {
       g.Clear(this.BackColor);
       g.Dispose();
       im = null;
       im2 = null;
       this.radioButton1.Checked = false;
       this.radioButton2.Checked = false;
       this.radioButton3.Checked = false;
       this.radioButton4.Checked = false;
       this.radioButton1.Enabled = false;
       this.radioButton2.Enabled = false;
       this.radioButton3.Enabled = false;
       this.radioButton4.Enabled = false;
   }

}

</source>


Load image and display

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form{

  private System.ruponentModel.Container components = null;
  private Image theImage;
  public Form1() {
     InitializeComponent();
     SetStyle(ControlStyles.Opaque, true);
     theImage = new Bitmap("Winter.jpg");
  }
  protected override void OnPaint(PaintEventArgs e){
     Graphics g = e.Graphics;
     g.DrawImage(theImage, ClientRectangle);
  }
    private void InitializeComponent() {
       this.ruponents = new System.ruponentModel.Container();
       this.Size = new System.Drawing.Size(300,300);
       this.Text = "Form1";
    }
    static void Main() {
        Application.Run(new Form1());
    }

}


      </source>


Load Image from an image file with Exception handler

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class BetterImageFromFile:Form {

    Image image;
  
    public static void Main()
    {
         Application.Run(new BetterImageFromFile());
         
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    public BetterImageFromFile()
    {
         string strFileName = "Color.jpg";
         ResizeRedraw = true; 
         try
         {
              image = Image.FromFile(strFileName);
         }catch {
              MessageBox.Show("Cannot find file " + strFileName + "!",
                        Text, MessageBoxButtons.OK, MessageBoxIcon.Hand);
         }
    }
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         if (image == null)
              return;
  
         grfx.DrawImage(image, 0, 0);
    }

}

</source>


Load image from a URL(Web) and draw it

<source lang="csharp"> using System; using System.Drawing; using System.IO; using System.Net; using System.Windows.Forms;

class ImageFromWeb: Form {

    Image image;
  
    public static void Main()
    {
         Application.Run(new ImageFromWeb());
    }
    public ImageFromWeb()
    {
         ResizeRedraw = true;
         WebRequest   webreq = WebRequest.Create("http://www.yoursite.ru/1.jpg");
         WebResponse  webres = webreq.GetResponse();
         Stream       stream = webres.GetResponseStream();
  
         image = Image.FromStream(stream);
         stream.Close();
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         grfx.DrawImage(image, 0, 0);
    }

}

</source>


Partial Image Rotate

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class PartialImageRotate: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new PartialImageRotate());
    }
    public PartialImageRotate()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }       
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Point[] aptDst = { new Point(0, cy / 2),
                            new Point(cx / 2, 0),
                            new Point(cx / 2, cy) };
  
         Rectangle rectSrc = new Rectangle(95, 5, 50, 55);
         
         grfx.DrawImage(image, aptDst, rectSrc, GraphicsUnit.Pixel);
    }

}

</source>


Partial Image Stretch

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class PartialImageStretch: Form {

    Image image = Image.FromFile("Color.jpg");
  
    public static void Main()
    {
         Application.Run(new PartialImageStretch());
    }
    public PartialImageStretch()
    {
         ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }       
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Rectangle rectSrc = new Rectangle(95, 5, 50, 55);
         Rectangle rectDst = new Rectangle( 0, 0, cx, cy);
  
         grfx.DrawImage(image, rectDst, rectSrc, GraphicsUnit.Pixel);
    }

}

</source>


Scribble with Bitmap

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class ScribbleWithBitmap: Form {

    bool     bTracking;
    Point    ptLast;
    Bitmap   bitmap;
    Graphics grfxBm;
  
    public static void Main()
    {
         Application.Run(new ScribbleWithBitmap());
    }
    public ScribbleWithBitmap()
    {
         Size size = SystemInformation.PrimaryMonitorMaximizedWindowSize;
         bitmap = new Bitmap(size.Width, size.Height);
  
         grfxBm = Graphics.FromImage(bitmap);
         grfxBm.Clear(BackColor);
    }
    protected override void OnMouseDown(MouseEventArgs mea)
    {
         if (mea.Button != MouseButtons.Left)
              return;
  
         ptLast = new Point(mea.X, mea.Y);
         bTracking = true;
    }
    protected override void OnMouseMove(MouseEventArgs mea)
    {
         if (!bTracking)
              return;
  
         Point ptNew = new Point(mea.X, mea.Y);
         
         Pen pen = new Pen(ForeColor);
         Graphics grfx = CreateGraphics();
         grfx.DrawLine(pen, ptLast, ptNew);
         grfx.Dispose();
  
         grfxBm.DrawLine(pen, ptLast, ptNew);
  
         ptLast = ptNew;
    }
    protected override void OnMouseUp(MouseEventArgs mea)
    {
         bTracking = false;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics grfx = pea.Graphics;
         grfx.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height);
    }

}

</source>


Set image resolution and paint it

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     bmp.SetResolution(600f, 600f);
     g.DrawImage(bmp, 0, 0);
     bmp.SetResolution(1200f, 1200f);
     g.DrawImage(bmp, 180, 0);
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


Shear Image

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     Point[] destinationPoints = {
       new Point(0, 0),    // destination for upper-left point of original
       new Point(300, 0),  // destination for upper-right point of original
       new Point(100, 300)};// destination for lower-left point of original
     g.DrawImage(bmp, destinationPoints);
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>


Shrink Image

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 using System.Drawing.Imaging;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     Bitmap bmp = new Bitmap("winter.jpg");
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     Rectangle sr = new Rectangle(80, 60, 400, 400);
     Rectangle dr = new Rectangle(0, 0, 200, 200);
     g.DrawImage(bmp, dr, sr, GraphicsUnit.Pixel);
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


Thumbnail Image

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class Thumbnail: Form {

    const int iSquare = 64;
    Image imageThumbnail;
  
    public static void Main()
    {
         Application.Run(new Thumbnail());
    }
    public Thumbnail()
    {
         Text = "Thumbnail";
         ResizeRedraw = true; 
         Image image = Image.FromFile("Color.jpg");
  
         int cxThumbnail, cyThumbnail;
  
         if (image.Width > image.Height)
         {
              cxThumbnail = iSquare;
              cyThumbnail = iSquare * image.Height / image.Width;
         }
         else
         {
              cyThumbnail = iSquare;
              cxThumbnail = iSquare * image.Width / image.Height;
         }
         imageThumbnail = image.GetThumbnailImage(cxThumbnail, cyThumbnail,
                                                  null, (IntPtr) 0);
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }      
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         for (int y = 0; y < cy; y += iSquare){
             for (int x = 0; x < cx; x += iSquare)
                  grfx.DrawImage(imageThumbnail, 
                                 x + (iSquare - imageThumbnail.Width) / 2,
                                 y + (iSquare - imageThumbnail.Height) / 2,
                                 imageThumbnail.Width, imageThumbnail.Height);
         }
    }

}

</source>