【问题标题】:Create Dynamic image (.gif) through a generic handler通过通用处理程序创建动态图像 (.gif)
【发布时间】:2016-06-10 09:39:38
【问题描述】:

我已经使用 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 动态的,而是静态结果。

【问题讨论】:

    标签: c# imagemagick generic-handler magicknet


    【解决方案1】:

    如果想知道如何通过带有 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();
    

    希望这对某人有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多