2016-02-27 73 views
0

我已经使用库Magick.Net创建的算法显示一个小时间计数器,但是当我通过通用处理程序请求gif资源时返回一个静态图像,但当我检查名为“test.gif”的测试文件时,动态图像完美无缺。为了更好地解释我这是代码:通过通用处理程序创建动态图像(.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,而不是静态的结果。

回答

0

对任何想知道如何通过一个通用处理器与Magick.Net暴露一个.gif您需要将MagickImageCollection对象传递到MemoryStream最后这字节数组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(); 

希望这可以对某人有用。