【发布时间】:2016-12-29 19:17:04
【问题描述】:
我在 .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);
}
但这对图像没有任何作用,它只是保存我首先上传的内容......我在这里做错了什么?
编辑:这就是使用 targer.Save();
这远不是我想要的:/
【问题讨论】:
-
你不应该做
target.Save()而不是src.Save()吗?此外,您可能需要将target.Save()移出using (Graphics g...)语句。 -
@dbc 好的,我确实像你说的那样,但裁剪区域与我选择的位置相去甚远。一秒钟后我会发布一张裁剪后的图片
-
任何人,伙计们???
-
使用
target.Save对我有用。你的输入值是多少?我正在使用X1 = 268, Y1 = 240, W1 = 587, H1 = 457。
标签: c# asp.net image webforms crop