2010-04-20 66 views
0

我想扩展一个只能够处理RPC处理的web服务器。 Web服务器是用C#编写的。它提供了一个抽象的处理函数类似以下内容:扩展web服务器来提供静态文件

public string owsHandler(string request, string path, string param, 
             OSHttpRequest httpRequest, OSHttpResponse httpResponse) 

我写下面的代码来处理图像文件:

Bitmap queryImg = new Bitmap(path); 
System.IO.MemoryStream stream = new System.IO.MemoryStream(); 
queryImg.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); 
queryImg.Dispose(); 
byte[] byteImage = stream.ToArray(); 
stream.Dispose(); 
return Convert.ToBase64String(byteImage); 

我测试它在浏览器中,则返回图像,但图像尺寸信息错过了。我应该添加更多的代码?或者是任何通用的服务器静态文件的方式?我不想在ASP.net服务器上提供它。

感谢

+0

为什么这个社区wiki? – 2010-04-20 15:07:43

回答

0

不要试图将文件加载到内存中的位图图像,只需成为原样。

return Convert.ToBase64String(File.ReadAllBytes(path)); 
+0

嗨,但我的位图是动态创建的,所以我很担心这种方法不起作用。 – 2010-04-20 06:01:02

+0

@驼鹿,我很困惑。在你说的* * static *文件的标题中,并且在你的代码示例中,你从一个路径加载位图。它是如何动态创建的? – 2010-04-20 15:07:11

+0

对不起,我没有清楚描述我的问题。起初,我认为它与提供静态文件相同。后来,我注意到我需要动态生成图片。 – 2010-04-21 05:07:21