正确裁剪C#格式的图像并将其放大到1024 x 768分辨率

正确裁剪C#格式的图像并将其放大到1024 x 768分辨率,c#,asp.net,image,webforms,crop,C#,Asp.net,Image,Webforms,Crop,我在.NET应用程序中设置了一项功能,我将4个值传递给代码隐藏,如下所示: X1 - X axis value Y1 - Y axis value W1 - selected width H1 - Represents the selected height of the image Rectangle cropRect = new Rectangle(Convert.ToInt32(X1.Value), Convert.ToInt32(Y1.Value), Convert.ToInt

我在.NET应用程序中设置了一项功能,我将4个值传递给代码隐藏,如下所示:

X1 - X axis value
Y1 - Y axis value
W1 - selected width  
H1 - Represents the selected height of the image
  Rectangle cropRect = new Rectangle(Convert.ToInt32(X1.Value), Convert.ToInt32(Y1.Value), Convert.ToInt32(W1.Value), Convert.ToInt32(H1.Value));
                Bitmap src = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream) as Bitmap;
                Bitmap target = new Bitmap(cropRect.Width, cropRect.Height);

                using (Graphics g = Graphics.FromImage(target))
                {
                    g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height),
                                     cropRect,
                                     GraphicsUnit.Pixel);
                    src.Save(Server.MapPath("/users/images/") + fileName);

                }
我正在尝试实现一个特性,使我能够像下面这样进行裁剪。这是输入图像,例如:

所需的输出如下所示:

X1 - X axis value
Y1 - Y axis value
W1 - selected width  
H1 - Represents the selected height of the image
  Rectangle cropRect = new Rectangle(Convert.ToInt32(X1.Value), Convert.ToInt32(Y1.Value), Convert.ToInt32(W1.Value), Convert.ToInt32(H1.Value));
                Bitmap src = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream) as Bitmap;
                Bitmap target = new Bitmap(cropRect.Width, cropRect.Height);

                using (Graphics g = Graphics.FromImage(target))
                {
                    g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height),
                                     cropRect,
                                     GraphicsUnit.Pixel);
                    src.Save(Server.MapPath("/users/images/") + fileName);

                }

红色矩形表示裁剪区域

我使用的代码如下所示:

X1 - X axis value
Y1 - Y axis value
W1 - selected width  
H1 - Represents the selected height of the image
  Rectangle cropRect = new Rectangle(Convert.ToInt32(X1.Value), Convert.ToInt32(Y1.Value), Convert.ToInt32(W1.Value), Convert.ToInt32(H1.Value));
                Bitmap src = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream) as Bitmap;
                Bitmap target = new Bitmap(cropRect.Width, cropRect.Height);

                using (Graphics g = Graphics.FromImage(target))
                {
                    g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height),
                                     cropRect,
                                     GraphicsUnit.Pixel);
                    src.Save(Server.MapPath("/users/images/") + fileName);

                }
但这对图像没有任何影响,它只是保存了我首先上传的内容。。。我做错了什么

编辑:这是使用targetr.Save()时的情况


它离我想要的还差得远:/

看起来你在调用src.Save,而你却想调用target.Save。

你不应该执行
target.Save()
而不是
src.Save()
?另外,您可能需要使用(Graphics g..语句将
target.Save()
移出
。@dbc好的,我按照您所说的做了,但是裁剪区域离我选择的位置很远。等一下我会贴一张剪短的照片有人吗,伙计们???像这样的吗?使用
target.Save
对我有效。你的输入值是多少?我使用的是
X1=268,Y1=240,W1=587,H1=457
。好的,我按照你说的做了,但是裁剪区域离我选择的地方很远。一秒钟后,我会发布一张裁剪过的图片