MVC Stream Picture旋转

时间:2016-01-27 07:38:53

标签: c# asp.net-mvc graphics

我想在MVC应用程序中使用旋转的图像。 为了这个目的,我想要一个控制器,它返回一个旋转的图像,但我不能让它工作。

这是我的命令:

public ActionResult PictureStreamRotate(string filename)
{
    Image image = Image.FromFile(filename);
    image.RotateFlip(RotateFlipType.Rotate90FlipNone);

    MemoryStream stream = new MemoryStream();
    image.Save(stream, ImageFormat.Jpeg);
    return File(stream, "image/jpeg");
}

流回的图像无效。死有人有任何想法。 输入图片是JPG文件。

顺便说一句。即使我删除了行Image.RotateFlip它也无法工作。

1 个答案:

答案 0 :(得分:1)

这是因为流的位置在写入数据之后。 ToArray()从一开始就获取流中的所有内容。或者,您可以将Position设置为零,或将Seek设置为图像数据的开头。

在LinqPad中试试这个:

var x = new MemoryStream();
x.WriteByte(123);
x.ReadByte().Dump();

结果是-1 ......

然后使用x.Position=0;,然后返回123

BTW,ToArray()复制数据,这不是你想要的,我想。