图像在裁剪之前未缩放

时间:2016-12-07 16:56:14

标签: c# .net

我有一个方法可以获取用户上传的文件,按比例缩放并裁剪为正方形。如果输入图像不是正方形,则缩放图像将从中心裁剪。在下面的代码中,保存的输出文件是所需的240x240像素,但是在裁剪之前图像没有被缩放,裁剪正在0,0坐标处进行而不是居中。请参阅下面的方法,删除缩放计算并替换为硬编码值以简化。

public static void ResizeAvatarImage(HttpPostedFileBase file)
{
    Image sourceImage = Image.FromStream(file.InputStream);//input file size 660x960

    //**************************************************
    //Ommitting calculations here for scaling dimensions
    //**************************************************

    Bitmap bmPhoto = new Bitmap(240, 240);//desired output size

    using (var newImage = Graphics.FromImage(bmPhoto))
    {
        newImage.DrawImage(sourceImage, new Rectangle(0, 0, 240, 349),//proportionally scaled image size 
                                                      0, 54, 240, 240,//cropped image size with offset to center image in crop area
                                                      GraphicsUnit.Pixel);
    }

    bmPhoto.Save("C:\\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}

0 个答案:

没有答案