日期:2014-05-19  浏览次数:21272 次

请问如何把outputstream对象转化为Image对象
目前我用gdi+绘图,在绘制在图的一些shape之后,我需要将目前绘制的图中某个部分截出一块画到图的右下方,但不能先保存图片,而是要在完全画完之后用用OutPutStream输出,我现在的思路就是利用Response.outputstream里的数据流变成inputstream,在用Image.FromStream创建Image对象,经过裁剪后在用DrawImage画到图片上.
但我用Image.FormStream(Response.outputstream)提示不支持指定的方法,是否是因为参数必须为inputstream?   那该如何转换?
或者有没有更简单的方法?

谢谢

------解决方案--------------------
不懂 友情UP
------解决方案--------------------
我一直用的笨办法:新加个页,outputstream直接就是在那网页显示图片,然后img 的src=网址...
------解决方案--------------------
MARK
------解决方案--------------------
请参考:
public byte[] Getimage()
{
FileStream s=File.OpenRead( "c:\\text.gif ");
int bdata;
System.IO.MemoryStream tempStream=new System.IO.Memorystream();//把图片放在内存的数组中去
while((bdata=s.ReadByte())!=-1)
{
temStream.WriteByte(((byte)bdata));
}
s.Close();
return tempStream.ToArray();
}
----------
//把图片显示出来
byte[] imagebyte=Getimage();
MemoryStream stream=new MemoryStream(imagebyte,o,imagebyte.length);
Bitmap image=new Bitmap(stream);
image.Save(Response.OutputStream,imageFormart.Gif);
------解决方案--------------------
mark
------解决方案--------------------
OutputStream 不可读,FromStream的stream参数要求可读。
我没看明白你要怎样做。
不过你可以先建个MemoryStream, 可读可写。
你原来保存到outputstream的地方改为保存到建立的这个memoryStream,
传回客户端的时候再从这个memoryStream里面将数据读出来写到outputstream。
注意一下重置memoryStream的Position。