2016-02-27 2 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 динамичнее вместо статического результата.

ответ

0

Любому Интересно, как подвергать .gif через общий обработчик с Magick.Net вам нужно пройти 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(); 

Надеюсь, это может быть полезно для кого-то.

Смежные вопросы