Поворот изображений на стороне сервера по заданным параметрам RotateFlip Asp.Net MVC + C#

.

В этой статье рассмотрим один из вариантов разворота изображения на стороне сервера. Сразу же создадим класс утилиты изображений с одним единственным статическим методом, который принимает в качестве параметров путь к файлу изображения которое нужно повернуть, и тип ротации RotateFlipType тот самый параметр по которому мы будем разворачивать изображение на заданный в параметре угол.



Все как оказалось очень просто. В Bitmap.FromFile(filePath) мы указываем путь к файлу и если данный файл в действительности существует то с помощью Bitmap.RotateFlip(RotateFlipType) просто разворачиваем изображение и передаем экземпляр Bitmap обратно в контроллер из которого собственно и будет вызываться данный метод.

Мы будем использовать перечисление RotateFlipType которое расположено в пространстве имен System.Drawing которое задает величину поворота изображения и ось для зеркального отражения рисунка. В таблице ниже приведены все члены перечисления:

Rotate180FlipNone Задает поворот на 180 градусов по часовой стрелке без зеркального отражения.
Rotate180FlipX Задает поворот на 180 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали.
Rotate180FlipXY Задает поворот на 180 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали и по вертикали.
Rotate180FlipY Задает поворот на 180 градусов по часовой стрелке с последующим зеркальным отражением по вертикали.
Rotate270FlipNone Задает поворот на 270 градусов по часовой стрелке без зеркального отражения.
Rotate270FlipX Задает поворот на 270 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали.
Rotate270FlipXY Задает поворот на 270 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали и по вертикали.
Rotate270FlipY Задает поворот на 270 градусов по часовой стрелке с последующим зеркальным отражением по вертикали.
Rotate90FlipNone Задает поворот на 90 градусов по часовой стрелке без зеркального отражения.
Rotate90FlipX Задает поворот на 90 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали.
Rotate90FlipXY Задает поворот на 90 градусов по часовой стрелке с последующим зеркальным отражением по горизонтали и по вертикали.
Rotate90FlipY Задает поворот на 90 градусов по часовой стрелке с последующим зеркальным отражением по вертикали.
RotateNoneFlipNone Задает отсутствие поворота по часовой стрелке и зеркального отражения.
RotateNoneFlipX Задает отсутствие поворота по часовой стрелке с последующим зеркальным отражением по горизонтали.
RotateNoneFlipXY Задает отсутствие поворота по часовой стрелке с последующим зеркальным отражением по горизонтали и по вертикали.
RotateNoneFlipY Задает отсутствие поворота по часовой стрелке с последующим зеркальным отражением по вертикали.

А вот как я по топорному для примера организовал контроллер HomeController:

Представление Index:

Представление Show:

Запускаем проект и проверяем работу приложения, после каждой загрузки изображений файлы в папке Files удаляются, изображения переворачиваются по заданным параметрам, самое первое изображение — исходное:

Без имени 1 Поворот изображений на стороне сервера  по заданным параметрам RotateFlip Asp.Net MVC + C#