比如,我有张图片是 200*300像素,然后我要从图片的左上角开始取这个图片的100*100像素来生成一张新的图片,请问这个要怎么现实呢? 请大家给个链接参考一下。

解决方案 »

  1.   

    int towidth = 100, toheight = 100;
    using(var originalImage = System.Drawing.Image.FromFile(@"D:\原图.jpg"))
    using(var bitmap = new System.Drawing.Bitmap(towidth, toheight))
    using(var g = System.Drawing.Graphics.FromImage(bitmap))
    {
                    //设置高质量插值法
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                    //设置高质量,低速度呈现平滑程度
                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    //清空画布并以透明背景色填充
                    g.Clear(System.Drawing.Color.Transparent);
                    //在指定位置并且按指定大小绘制原图片的指定部分
                    g.DrawImage(originalImage, 0, 0, towidth, toheight);
                    bitmap.Save(@"D:\abc.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
      

  2.   

    呵呵,找到了,是DrawImageUnscaled方法。