Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use the autorotate plugin in ImageResizer

How do I use the AutoRotate plugin in a c# console application? I thought I'd be able to do something like settings.AutoRotate = true; like I can change the fit mode to use the seam carving plugin.

I've tried settings.Add("autorotate","true") to the keycollection, as well as other keynames AutoRotate and autoRotate.

I'm using it in a simple method.

    new AutoRotate().Install(ImageResizer.Configuration.Config.Current);
    ...
    protected static Image ResizeImage(Image image, double scaleFactor)
    {
        var settings = new ResizeSettings
        {
            Scale = ScaleMode.Both,
            Width = (int)Math.Floor(Image.Width * scaleFactor),
            Height = (int)Math.Floor(Image.Height * scaleFactor),
            Mode = FitMode.None,
            Format = "png"
        };

        settings.Set("autorotate", "true");
        return ImageBuilder.Current.Build(image, settings, true);
    }
like image 476
MariaSnuggles Avatar asked Sep 09 '13 14:09

MariaSnuggles


1 Answers

After a lot of research, I've found the error that I'm making, and reveals a nice little "hidden feature" of .Net!

When an image is read into the Bitmap object, the meta data is erased, so, by accepting an Image object, the data about the orientation is lost and auto rotate doesn't kick in. So, passing the image filename instead of the image object, and my code above above works!

Thanks guys!

like image 153
MariaSnuggles Avatar answered Nov 13 '22 17:11

MariaSnuggles