Image Scale Isotropic

image_pdfimage_print
   
  

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);
     }
}

   
     


This entry was posted in 2D Graphics. Bookmark the permalink.