通过通用处理程序

时间:2016-02-27 00:27:05

标签: c# imagemagick generic-handler magicknet

我已经使用Magick.Net库创建了算法来显示一个小时间计数器,但是当我通过泛型处理程序请求gif资源时返回一个静态图像,但是当我检查名为“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 dinamic而是静态结果。

1 个答案:

答案 0 :(得分:1)

要知道如何通过Magick.Net的通用处理程序公开.gif,你需要将MagickImageCollection对象传递给MemoryStream,最后传递给Byte Array IE:

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();

希望这对某些人有用。