通过通用处理程序创建动态图像 (.gif)

Create Dynamic image (.gif) through a generic handler

我已经使用库 Magick.Net 创建了算法来显示一个小时间计数器,但是当我通过通用处理程序请求 gif 资源时 returns 静态图像,但是当我检查测试文件名为:"test.gif" 动态图像效果完美。为了更好地解释我,这是代码:

MagickImageCollection image = null;
image = ImageRenderMethods.CreateGIF((DateTime)eventDate);

var path = RequestContext.HttpContext.Server.MapPath("/Content/Images");
path += "\test.gif";
image.Write(path);

byte[] buffer = image.ToByteArray();
context.Response.ContentType = "image/gif";
context.Response.BinaryWrite(buffer);
context.Response.Flush();

所以我想知道为什么通用处理程序的响应不是动态的 .gif 而不是静态结果。

想知道如何通过带有 Magick.Net you need to pass the MagickImageCollection object into a MemoryStream 的通用处理程序公开 .gif,最后将其公开给字节数组 I.E.:

public static MemoryStream GetMemoryStreamResult(MagickImageCollection imageGif)
{
    MemoryStream ms = new MemoryStream();
    imageGif.Write(ms, MagickFormat.Gif);
    ms.Seek(0, SeekOrigin.Begin);
    return ms;
}

调用类似于:

 var imageGif = ImageRenderMethods.GetMemoryStreamResult(image);
 byte[] buffer = imageGif.ToArray();

希望这对某些人有用。