你的位置:首页 > ASP.net教程

[ASP.net教程]C#图片按比例缩放


// 按比例缩放图片    public Image ZoomPicture(Image SourceImage, int TargetWidth, int TargetHeight)    {      int IntWidth; //新的图片宽      int IntHeight; //新的图片高      try      {        System.Drawing.Imaging.ImageFormat format = SourceImage.RawFormat;        System.Drawing.Bitmap SaveImage = new System.Drawing.Bitmap(TargetWidth, TargetHeight);        Graphics g = Graphics.FromImage(SaveImage);        g.Clear(Color.White);        //计算缩放图片的大小 http://www.cnblogs.com/roucheng/        if (SourceImage.Width > TargetWidth && SourceImage.Height <= TargetHeight)//宽度比目的图片宽度大,长度比目的图片长度小        {          IntWidth = TargetWidth;          IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;        }        else if (SourceImage.Width <= TargetWidth && SourceImage.Height > TargetHeight)//宽度比目的图片宽度小,长度比目的图片长度大        {          IntHeight = TargetHeight;          IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;        }        else if (SourceImage.Width <= TargetWidth && SourceImage.Height <= TargetHeight) //长宽比目的图片长宽都小        {          IntHeight = SourceImage.Width;          IntWidth = SourceImage.Height;        }        else//长宽比目的图片的长宽都大        {          IntWidth = TargetWidth;          IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;          if (IntHeight > TargetHeight)//重新计算          {            IntHeight = TargetHeight;            IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;          }        }        g.DrawImage(SourceImage, (TargetWidth - IntWidth) / 2, (TargetHeight - IntHeight) / 2, IntWidth, IntHeight);        SourceImage.Dispose();        return SaveImage;      }      catch (Exception ex)      {             }      return null;    }