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

求Bitmap的显示方法
已经生成了一个bitmap
public   void   setPos(string[]   RoomNo,   int   num,System.Web.HttpServerUtility   page)
{
BaseStr   =   page.MapPath(new   judgeBuilding().chooseBuilding(RoomNo[0]));
bm   =   new   Bitmap(page.MapPath(new   judgeBuilding().choosePicture(RoomNo[0])));
g   =   Graphics.FromImage(bm);
PRStr   =   page.MapPath( "PR.pos ");
int   building=RoomNo[0][0]- '0 ';

readRatioFile();

for(int   i=0;   i <Num;   i++)
{
if(building   ==   Convert.ToInt32(RatioData[i,0]))
{
building   =   i;break;
}
}

conv.setRatio(RatioData[building,1],RatioData[building,2],RatioData[building,3],RatioData[building,4]);
this.readData();
if(tagData   ==   false   ||tagRatio   ==   false)   throw   new   Exception( "还未读入数据。 ");
for(int   i=0;   i <num;   i++)
{
int   RoomPosNo   =   (RoomNo[i][2]- '0 ')*10+RoomNo[i][3]- '0 ';
_setSinglePos(RoomPosNo-1);
}
}
public   Bitmap   getBitmap(){
return   this.bm;
}
其中bm是已经动态生成的图象,需要显示到页面上。
目前试过先保存为文件,再从文件中读取,但因为是动态生成的,不同的条件下会有不同的文件名,因此不能放到项目中去,生成的图象只有在本地机上可以访问,换另外一台机器就不能正确显示图像。
所以想问下到底有没有方法直接将bm画到页面上面?该怎么画?谢谢了

------解决方案--------------------
楼主的需求和生成一个随机码,并显示的需求差不多
用一个aspx页面来生成图片,然后让这个页面以图片流的方式输出。
使用的页面就像使用一个普通图片一样的使用。例如

1 生成图片流的页面叫getRandImg.aspx
2 使用图片的页面,加一个image控件,然后如下设置url即可
<asp:Image ID= "Image1 " ImageUrl= "~/getRandImg.aspx " runat= "server " />

可以参考我的博客文章《ASP.NET随机码生成示例》
http://www.cnblogs.com/heekui/archive/2007/01/06/613609.html
------解决方案--------------------
另外一个页面
<img src=xxx.aspx>
------解决方案--------------------
一个页面要么是文本,要么是二进制内容

如果是后者,只能整个页面只有一张图片
一般的做法就是放到另外的aspx文件,Img的src指定为此文件