如何将放在内存的Image图片显示在页面上

三木哥 2006-05-29 10:21:30
自动生成一个验证码后将其放在内存中,这是生成验证码图片的方法定义:
protect Image CreateValidateCodeImg(){}

然后我定义了一个Image对象
Image myImage = CreateValidateCodeImg();

然后将该图片放在内存中:
MemoryStream ms=new MemoryStream();
myImage.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);

怎样才能将存在内存中的图片直接在一个Image控件显示出来.

...全文
363 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dapanda 2006-05-29
  • 打赏
  • 举报
回复
private Image GetPhoto(object photo)
{
if (photo == System.DBNull.Value)
return null;
try
{
return new Bitmap(new System.IO.MemoryStream((byte[])photo));
}
catch
{
return null;
}
}
三木哥 2006-05-29
  • 打赏
  • 举报
回复
楼上的很详细,不过我是在别人设计好的数据库上写代码,并没有存放图片这一字段
kaiwind 2006-05-29
  • 打赏
  • 举报
回复
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;

namespace news
{
/// <summary>
/// showpic 的摘要说明。
/// </summary>
public class showpic : System.Web.UI.Page
{
SqlConnection myCon;
SqlCommand myCmd;
public void showPic()
{
byte [] pictureData = null;
string SQLconStr = ConfigurationSettings.AppSettings["NEWS"].ToString();
string selectStr = "select * from news where newsID='"+Session["getting"].ToString().Trim()+"'";
myCon = new SqlConnection(SQLconStr);
myCon.Open();
//建立关系
myCmd = new SqlCommand(selectStr,myCon);
//实例化数据适配器
SqlDataReader dr = myCmd.ExecuteReader();
if(dr.Read())
{
pictureData =(byte[])dr["newsImage"];
Response.ContentType = dr["picType"].ToString();
}
dr.Close();
myCon.Close();
Response.ClearContent();
Response.AppendHeader("content-length",pictureData.Length.ToString());
Response.BinaryWrite(pictureData);
Response.End();
}
private void Page_Load(object sender, System.EventArgs e)
{
showPic();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
///////////////////////////////////
然后在
Image1.ImageUrl = "showpic.aspx";
这个方法是先把图片存入到数据库,在从数据库中读取出来哈
和你讲的哪个问题差不多,你看看应该会的哈
三木哥 2006-05-29
  • 打赏
  • 举报
回复
我不是想将图片输到页面,是想直接在Image控件上显示啊.
a05 2006-05-29
  • 打赏
  • 举报
回复
Response.ClearContent();
Response.ContentType = "image/jpg";
Response.BinaryWrite(ms.ToArray()); //将图像输出的页面
三木哥 2006-05-29
  • 打赏
  • 举报
回复
只剩下10分了,大家帮帮忙
kaiwind 2006-05-29
  • 打赏
  • 举报
回复
呵呵就是哈
三木哥 2006-05-29
  • 打赏
  • 举报
回复
我以前也是用一个专门的页面的,就是用<img alt="image" src="ValidateCode.aspx" />,不过我就想在一个页面中完成,不过真没办法的话也就只能用一个专门的页面了.
kaiwind 2006-05-29
  • 打赏
  • 举报
回复
在内存中还是以2进制流的形式储存的啊,那你就必须通过一个页面来专门读取这个流,然后在用Image1.ImageUrl = "读取流的页面地址";来实现图片的显示。
三木哥 2006-05-29
  • 打赏
  • 举报
回复
图片是放在内存啊,因为我不想将图片存在硬盘里,假如存在硬盘里用ImageURl属性就很方便了.
kaiwind 2006-05-29
  • 打赏
  • 举报
回复
那你能告诉我你的图片是放在什么地方在吗??
Image1有个ImageUrl属性哈,你可以修改这个值来达到显示图片的目的

62,266

社区成员

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

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

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

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