C# 图像处理器在调整大小后似乎将图像旋转90度

C# 图像处理器在调整大小后似乎将图像旋转90度,c#,asp.net-mvc-4,image-processing,image-uploading,imageprocessor,C#,Asp.net Mvc 4,Image Processing,Image Uploading,Imageprocessor,我使用nuget for c#下载了ImageProcessor库。我用它来上传和调整一个网站的图像大小。上传过程工作正常,只是当我试图查看上传的图像时,它看起来比原始图像向后旋转了90度。以下是我正在使用的代码: ISupportedImageFormat format = new JpegFormat { Quality = 70 }; using (MemoryStream inStream = new MemoryStream(_img))

我使用nuget for c#下载了ImageProcessor库。我用它来上传和调整一个网站的图像大小。上传过程工作正常,只是当我试图查看上传的图像时,它看起来比原始图像向后旋转了90度。以下是我正在使用的代码:

        ISupportedImageFormat format = new JpegFormat { Quality = 70 };

        using (MemoryStream inStream = new MemoryStream(_img))
        {
            using (MemoryStream outStream = new MemoryStream())
            {
                // Initialize the ImageFactory using the overload to preserve EXIF metadata.
                using (ImageFactory imageFactory = new ImageFactory(preserveExifData: false))
                {
                    // Load, resize, set the format and quality and save an image.
                    imageFactory.Load(inStream)
                        .Resize(new ResizeLayer(new Size(width, height), resizeMode: resizeMode))
                                .Format(format)
                                .Save(outStream);
                }

                return outStream.ToArray();
            }
        }

如果不保留EXIF元数据,则ImageFactory类有一个方法
AutoRotate
,该方法将更改图像以补偿原始方向

您的新代码如下所示

ISupportedImageFormat format = new JpegFormat { Quality = 70 };

using (MemoryStream inStream = new MemoryStream(_img))
{
    using (MemoryStream outStream = new MemoryStream())
    {
        // Initialize the ImageFactory using the overload to preserve EXIF metadata.
        using (ImageFactory imageFactory = new ImageFactory(preserveExifData: false))
        {
            // Load, resize, set the format and quality and save an image.
            imageFactory.Load(inStream)
                        .AutoRotate()
                        .Resize(new ResizeLayer(new Size(width, height), resizeMode: resizeMode))
                        .Format(format)
                        .Save(outStream);
        }

        return outStream.ToArray();
    }
}

根据您用来查看图像的软件,某些软件使用图像的元数据来旋转图像,而图像处理器可能不会。或者反之亦然。它是从浏览器中查看的。我下载了已调整大小的图像,它的角度为90度。请尝试将
preserveExifData
设置为
true
,看看是否有不同。除此之外,我没有任何建议。对不起,现在我注意到这张照片其实很长,不知道这是否有区别。我是从手机上拍的。照片通常有Exif元数据。这些Exif属性之一是方向。这可能会影响图像的显示方式。试试我上面的建议,看看是否有帮助。