请问怎样用asp.net截取一张大图片的某一部分然后生成一张新图片然后保存在服务器呢?请给详细解答,谢谢!

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.IO;
    using System.Drawing;
    /// <summary>
    /// Summary description for ImageControl
    /// </summary>
    public class ImageControl
    {
        public ImageControl()
        {
            //
            // TODO: Add constructor logic here
            //
        }
        /// <summary>
        /// 图象截取
        /// </summary>
        /// <param name="OriginImagePath">原始物理地址</param>
        /// <param name="ObjectImagePath">目标物理地址</param>
        /// <param name="x">坐标X</param>
        /// <param name="y">坐标Y</param>
        /// <param name="width">目标Width</param>
        /// <param name="height">目标Height</param>
        public static void MakeThumbnail(string OriginImagePath, string ObjectImagePath, int x, int y, int oriWidth, int oriHeight, int width, int height)
        {
            System.Drawing.Image OriginImage = System.Drawing.Image.FromFile(OriginImagePath);
            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(width, height);        //新建一个画板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);        //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;        //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;        //清空画布并以透明背景色填充
            g.Clear(System.Drawing.Color.Transparent);
            //在指定位置并且按指定大小绘制原图片的指定部分
            //g.DrawImage(
            g.DrawImage(OriginImage, new System.Drawing.Rectangle(0, 0, width, height), new System.Drawing.Rectangle(x, y, oriWidth, oriHeight), System.Drawing.GraphicsUnit.Pixel);
            try
            {
                //以jpg格式保存缩略图
                bitmap.Save(ObjectImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                OriginImage.Dispose();
                bitmap.Dispose();
                g.Dispose();
            }
        }
    }