ImageController в .NET

193
15 августа 2018, 06:00

В ASP.NET-приложении необходимо реализовать разворот картинок на 90 градусов. Пока делаю только для поворота налево. В первом блоке кода реализована логика action'a, который вызывается по нажатию на кнопку. Во втором - метод, который выдает ошибку "В GDI+ возникла ошибка общего вида." Прекрасно понимаю, что эта ошибка может таить в себе что угодно, но заметил, что она выскакивает только при развороте на 180 градусов.

public ActionResult RotateLeft(int? imgId, int? idx, int angle){
 if (idx == null) idx = 0;
        var index = Convert.ToInt32(idx);
        var img = GetImage(imgId, index);
        var _deg = angle;
        Image image = ImageHelper.ByteToImage(img);
        if (img != null && img.Length > 0)
        {
            switch (_deg)
            {
                case 0: 
                    image.RotateFlip(RotateFlipType.Rotate90FlipXY);
                    _deg += 90;
                    break;
                case 90:
                    image.RotateFlip(RotateFlipType.Rotate180FlipXY);
                    _deg += 90;
                    break;
                case 180:
                    image.RotateFlip(RotateFlipType.Rotate270FlipXY);
                    _deg += 90;
                    break;
                case 270:
                    _deg = 0;
                    break;
            }
        }
        img = ImageHelper.ImageToByte(image);
        var model = new ScaledImageModel { OriginalImage = img, ScaledImage = img, Index = index, ImgId = imgId , Angle = _deg};
        return PartialView("ShowImagePartial", model);
    }

Метод GetImage вытаскивает из сессии объект.

    public static byte[] ImageToByte(Image img)
    {
        var converter = new ImageConverter();
        return (byte[])converter.ConvertTo(img, typeof(byte[]));
    }
Answer 1

function rotate() { 
  var img = document.querySelector("img"); 
  var angle = +(img.dataset.angle || 0) + 90;   
  img.style.transform = `rotate(${angle}deg)`; 
  img.dataset.angle = angle; 
}
<button onclick="rotate()">Click</button><br/> 
<img src="https://www.gstatic.com/webp/gallery3/1.sm.png"/>

READ ALSO
Команды между 2-мя UserControl WPF

Команды между 2-мя UserControl WPF

Имеется приложение с 2-мя Юзер контролами1 - со списком пользователей, 2 - с историей сообщений

207
конструктор отчётов (WPF C#)

конструктор отчётов (WPF C#)

Нужно создать программу для создания отчётовДолжно быть 3 функции

214
Ресурсы в Xamarin.Android

Ресурсы в Xamarin.Android

Первый раз пишу под android и мне надо добавить небольшую базу данный в формате xml, как я понял на android все такие фокусы прокатывают через папку...

180
Timer не запускает событие Elapsed

Timer не запускает событие Elapsed

столкнулся с проблемой, при выполнении метода Start(), не начинает обрабатываться событие Elapsed

150