是否可以使用Response.Write / WriteFile从动态创建的位图写入http响应流而不将图像保存到硬盘驱动器?
答案 0 :(得分:11)
您可以使用MemoryStream
并将其分配给Response.OutputStream
,或者在保存位图时直接使用Response.OutputStream
。
this页面上的文档中有一个示例,但它只是将位图直接保存到输出流中:
// Set the correct content type, so browser/client knows what you are sending
Response.ContentType = "image/jpeg";
Response.Clear();
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);
bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
答案 1 :(得分:3)
如果您的位图存储在byte[]
中,您也可以直接将其转储到Response.BinaryWrite(myByteArray);
,只要您正确设置了内容类型,长度和处置(如@arx所述) )。
答案 2 :(得分:2)
答案 3 :(得分:0)
是。确保正确设置内容类型,它应该可以正常工作。