关于如何把我这个随机数生成的图片,并把图片指定的显示在 aspx页中某个位置的问题?

parsely 2003-09-13 10:03:52
下面的这段代码就是能把生成的随机数变成图片显示出来,不过我现在不知道怎么能让这个图片在一个固定位置上显示出来,比如在一个 表格里<td></td>


public void Page_Load(object sender,EventArgs e)
{


string s=DateTime.Now.Second.ToString();
string filename=s;
string front_filename;

Random rrr=new Random();
front_filename=filename+rrr.Next(1000);

string strNum=front_filename;

string strFontName;
int iFontSize;
int iWidth;
int iHeight;
strFontName="宋体";
iFontSize=12;
iWidth=10*strNum.Length;
iHeight=25;

Color bgColor=Color.Yellow;
Color foreColor=Color.Red;

Font foreFont=new Font(strFontName,iFontSize,FontStyle.Bold);

Bitmap Pic=new Bitmap(iWidth,iHeight,PixelFormat.Format32bppArgb);
Graphics g=Graphics.FromImage(Pic);
Rectangle r=new Rectangle(0,0,iWidth,iHeight);

g.FillRectangle(new SolidBrush(bgColor),r);

g.DrawString(strNum,foreFont,new SolidBrush(foreColor),2,2);
MemoryStream mStream=new MemoryStream();
Pic.Save(mStream,ImageFormat.Gif);
g.Dispose();
Pic.Dispose();

Response.ClearContent();
Response.ContentType="image/GIF";
Response.BinaryWrite(mStream.ToArray());
Response.End();
}

...全文
74 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2003-09-13
  • 打赏
  • 举报
回复
如果用现在这样产生图片的方法,除了Session确实没有更好的办法了。不过你可以换一种做法,不要在myimg.aspx中产生随机数,而在要引用该图片的页面产生,你只需要将产生的随机数作为参数通过文件名传递给图片页面,比如这样:<img src="myimg.aspx?num=23487">,这样可以在myimg.aspx中获取num参数的值然后用该数值生成图片,这样就不需要用Session去获取图片中的数值了,如果觉得这样传递图片中的数值不安全,可以将传递的参数简单地加一下密,或者象ViewState一样用Base64编码一下。
parsely 2003-09-13
  • 打赏
  • 举报
回复
这么个问题用SESSION ,我感觉有点浪费资源,能有什么更好的办法吗,如果没有了,那只能用这种办法了。
cnlamar 2003-09-13
  • 打赏
  • 举报
回复
Random RandomObj=new Random();
string RandNum=RandomObj.Next(10000,99999).ToString();
Session["RandNumasdqwed23df23"]=RandNum;

Response.Clear();
Bitmap image=new Bitmap(50,15);
Graphics g=Graphics.FromImage(image);
g.Clear(Color.Black);
g.DrawString(RandNum,new Font("Courier New", 10),new SolidBrush(Color.White),1,1);
image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif);
Response.ContentType="image/gif";


这个是我做的,你看看:)
还有什么问题给我发短信:)
cnlamar 2003-09-13
  • 打赏
  • 举报
回复
把生成的密码存到SESSION里去。。。效验的时候读出来,我就是这么做的。。。
combread 2003-09-13
  • 打赏
  • 举报
回复
<table><tr><td><img src="myimg.aspx"></td></tr></table>
这个table,如果可以放在myimg.aspx中,就不用生成临时文件了。

combread 2003-09-13
  • 打赏
  • 举报
回复
对不起,我想再问一句:
<table><tr><td><img src="myimg.aspx"></td></tr></table>
这个table,可以放在myimg.aspx中吗?

我以前实现这种方法,都是把图片另存为一个临时文件,然后把页面上的一个image的url指向临时文件。
jianglinchun 2003-09-13
  • 打赏
  • 举报
回复
抱歉,少看了点东西,webdiyer已经说对了啦。
parsely 2003-09-13
  • 打赏
  • 举报
回复
不过还有个问题,如果index.aspx 中我这样做了

<table><tr><td><img src="myimg.aspx"></td></tr></table>

那当我做校验的时候,在index.aspx 页中如何取得myimg.aspx页中生成的随机数啊?
jianglinchun 2003-09-13
  • 打赏
  • 举报
回复
还可以这样来:

public void Page_Load(object sender,EventArgs e)
{
//开头加这一句
Response.ContentType="images/png";

结尾加一句

return;
}

假设这个叶面的url为chart.aspx
那么你需要的图片这样引用:

<asp:images id=mychart/>

codebehind:

mychart.imagesurl="chart.aspx"就可以了。

偶的投票系统就是这样写的,欢迎去投投票:

http://diyinside.cnred.net
cnlamar 2003-09-13
  • 打赏
  • 举报
回复
支持吴旗娃:)
webdiyer 2003-09-13
  • 打赏
  • 举报
回复
这个页面本身就是一个图片,把它插入到你要的地方就行了,象这样:

<table><tr><td><img src="myimg.aspx"></td></tr></table>

--------------------------------
AspNetPager 免费分页控件4.2版发布,同时发布最新源代码,欢迎下载:http://www.webdiyer.com

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧