首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否有使用ASP.NET Web API返回图像的推荐方法

是否有使用ASP.NET Web API返回图像的推荐方法
EN

Stack Overflow用户
提问于 2012-09-18 05:43:40
回答 1查看 68.7K关注 0票数 86

返回带有两个参数(x和y表示调整大小)的图像的最佳方式是什么?

例如

代码语言:javascript
复制
~/api/image12345/200/200

将返回一个200x200jpg/png/或gif

我应该返回System.Drawing.Image对象还是手动定义HTTPReponseMessage.Content

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-18 07:49:24

您不应该返回System.Drawing.Image,除非您还添加了一个知道如何将其转换为适当字节的格式化程序,该格式化程序不会像您预期的那样将自身序列化为图像字节。

一种可能的解决方案是返回一个HttpResponseMessage,其中图像存储在其内容中(如下所示)。请记住,如果您想要问题中显示的网址,则需要一个映射{imageName}、{width}和{height}参数的路由。

代码语言:javascript
复制
public HttpResponseMessage Get(string imageName, int width, int height)
{
    Image img = GetImage(imageName, width, height);
    using(MemoryStream ms = new MemoryStream())
    {
        img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        result.Content = new ByteArrayContent(ms.ToArray());
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");

        return result;
    }
}

但同样,如果您在许多地方这样做,使用格式化程序路线可能是“推荐”的方式。正如编程中的几乎所有事情一样,答案将取决于您的场景。

票数 151
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12467546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档