有没有办法将图片旋转-90度?

4

我正在使用rotateflip来旋转图像并保存在服务器上,以下是代码:

using (Image image = Image.FromFile(HttpContext.Current.Server.MapPath("~/Content/Job_Files/" + Job_ID + "/" + new_str + "/Images/" + path)))
{
    //rotate the picture by 90 degrees and re-save the picture as a Jpeg
    if (cbox_id == "cboxRight")
    {
        image.RotateFlip(RotateFlipType.Rotate90FlipNone);
    }
    else
    {
        image.RotateFlip(RotateFlipType.Rotate90FlipNone);
    }
    image.Save(new_path, System.Drawing.Imaging.ImageFormat.Jpeg);
    image.Dispose();
}

单击右旋转时,图像会向右旋转,但左旋转无效。如何旋转它?

3个回答

6

你的if语句的两个分支都包含以下代码行:

image.RotateFlip(RotateFlipType.Rotate90FlipNone);

所以,除非有一些神奇的事情发生,否则它们都会做完全相同的事情。
其中一个应该“可能”是:
image.RotateFlip(RotateFlipType.Rotate270FlipNone);

(旋转总是顺时针方向,所以旋转270度与旋转-90度相同)。


我知道我尝试了不同的选项..有没有其他办法? - Dhara
@debin,请查看最终的代码片段,逆时针旋转90度与顺时针旋转270度是相同的。 - paxdiablo

1
将图像顺时针旋转270度等同于逆时针旋转90度。因此,请使用RotateFlipType.Rotate270FlipXRotateFlipType.Rotate270FlipNone。更新:可以根据需要使用提供的选项。

我必须再次问一下:当你只想进行简单的旋转时,为什么要翻转呢? - paxdiablo
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Tushar
好的,我认为我可能错过了什么,因为问题似乎没有提到翻转。如果你只是把它作为一个选项提供,那我想那就没问题了。 - paxdiablo

0

尝试使用RotateFlipType.Rotate270FlipX代替RotateFlipType.Rotate90FlipNone来向左旋转图像。


我不会将图像向左旋转。 - Dhara
你为什么要在之后翻转x? - paxdiablo
旋转270度后,图像将会倒置,因此必须使用翻转选项。也许不是RotateFlipType.Rotate270FlipX,而是RotateFlipType.Rotate270FlipY - kreig
270度不会倒置,而180度会。如果您的意图是将图像右转(在水平中心线上反射),那么与没有初始旋转的垂直中心线反射相同。在这种情况下,使用一个操作RotateNonFlip [XY](无论它是哪个轴,我头脑中不确定)可能更快。 - paxdiablo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接