Динамические изображения в MVC (Места тестирования бета-версии Exchange стека)

Я смотрел на Места тестирования бета-версии Exchange Стека и заметил, что каждый сайт, который входит в бету, имеет диаграмму наверху со словами 'веб-приложения Бета' или 'Играющая Бета', например.

Я задался вопросом, создаются ли эти изображения индивидуально или если созданного динамично так или иначе? Существует ли способ использовать MVC.NET для создания PNGs на лету?

Если ответ является слишком сложным для этого форума, кто-либо может указать на меня на какие-либо статьи, которые помогут?

Заранее спасибо

Сниффер

8
задан Sniffer 11 July 2010 в 18:40
поделиться

1 ответ

Да, существует способ динамического создания и обслуживания изображений с помощью ASP.NET MVC. Вот пример:

public class HomeController : Controller
{
    public ActionResult MyImage()
    {
        // Load an existing image
        using (var img = Image.FromFile(Server.MapPath("~/test.png")))
        using (var g = Graphics.FromImage(img))
        {
            // Use the Graphics object to modify it
            g.DrawLine(new Pen(Color.Red), new Point(0, 0), new Point(50, 50));
            g.DrawString("Hello World", 
                new Font(FontFamily.GenericSerif, 20), 
                new Pen(Color.Red, 2).Brush, 
                new PointF(10, 10)
            );

            // Write the resulting image to the response stream
            using (var stream = new MemoryStream())
            {
                img.Save(stream, ImageFormat.Png);
                return File(stream.ToArray(), "image/png");
            }
        }
    }
}

А затем просто включите это изображение в представление:

<img src="<%= Url.Action("myimage", "home") %>" alt="my image" />
15
ответ дан 5 December 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: