我在把数据库里的二进制图片转换成jpg格式时,遇到了System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);使用了无
大家帮我看看这段代码那里错了
public string bind()
{
StringBuilder sb=new StringBuilder();
strsql="select docid,fileid,rowed,filecon from docmapfile";
OracleDataAdapter da = new OracleDataAdapter(strsql,conn);
da.Fill(ds);
this.text1.Value=ds.Tables[0].Rows[0].ItemArray[0].ToString();
this.text2.Value=ds.Tables[0].Rows[0].ItemArray[1].ToString();
this.text3.Value=ds.Tables[0].Rows[0].ItemArray[2].ToString(); byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);
image.Save(Response.OutputStream , ImageFormat.Jpeg);
sb.Append(image.ToString()); conn.Close();
return sb.ToString();
}
报System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);使用了无效参数,我的ms时有值的
public string bind()
{
StringBuilder sb=new StringBuilder();
strsql="select docid,fileid,rowed,filecon from docmapfile";
OracleDataAdapter da = new OracleDataAdapter(strsql,conn);
da.Fill(ds);
this.text1.Value=ds.Tables[0].Rows[0].ItemArray[0].ToString();
this.text2.Value=ds.Tables[0].Rows[0].ItemArray[1].ToString();
this.text3.Value=ds.Tables[0].Rows[0].ItemArray[2].ToString(); byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);
image.Save(Response.OutputStream , ImageFormat.Jpeg);
sb.Append(image.ToString()); conn.Close();
return sb.ToString();
}
报System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);使用了无效参数,我的ms时有值的
解决方案 »
- C# DirectShow开发 资源释放的问题
- 正则表达式——(\w+[-]?\w+[-]?\w+)+\.([cn]?[oe]?[mnt]{1})(\.cn)?
- Range range = (Range)worksheet1.Cells[3,3]; 能取到 C3么
- 求问一个程序权限问题
- 有没有人用VS2010为WPF做过安装包啊……
- arraylist的问题
- gridview里FooterRow 的问题
- 哪位大侠用WEB ASP.NET实现过TIMER控件事件,来显示时间的,请一定帮忙啊,谢谢了
- 在SYSTEM.text.encoding中encoding代表什么意思?
- 请教各位 ???
- 一个执行存储过程的代码,所执行的存储过程在oracal中test通过无误,但一旦我在程序中运行就抱错
- 散分100~嗬嗬~ 顺便讨论个问题~:JIT调试失败,出现以下错误:0x80040025.
或
byte[] byteImage = (byte[])ds.Tables[0].Rows[0][图片列名称];
Image img = (Image)ConvertFrom( byteImage );
byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);with
byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage, true);
ms.Read( barrImage, 0, barrImage.Length );
ms.Position = 0;
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);为
MemoryStream ms=new MemoryStream();
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] barrImage = ms.ToArray();
ms.Close();
其中,pictureBox1.Image是你的图片,barrImage是转换后的二进制流。
我也做过将数据库图片字段显示出来的项目。
见到你的写法以为能将其它控件和图片放在同一个页面,结果发现还是和我的一样,将整个页面变成图片,只不过写法不同。
1)保证保存图片的文件夹要在网站内。
2)如果数据库里保存的图片路径是图片和要显示图片的网页的相对路径那么Image.ImageUrl = @"图片和要显示图片的网页的相对路径";就能显示图片了。
3)如果数据库里保存的图片路径不是图片和要显示图片的网页的相对路径那么就用replace()将 一些字符将数据库里保存的图片路径置换成图片和要显示图片的网页的相对路径