В 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[]));
}
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"/>
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Имеется приложение с 2-мя Юзер контролами1 - со списком пользователей, 2 - с историей сообщений
Первый раз пишу под android и мне надо добавить небольшую базу данный в формате xml, как я понял на android все такие фокусы прокатывают через папку...
столкнулся с проблемой, при выполнении метода Start(), не начинает обрабатываться событие Elapsed