在工作过程中遇到了这个问题,在网上查了一些资料,结合自己的解决方法及解决过程总结了下,方面以后查阅。如果能帮到同样遇到这个问题的你,将非常高兴哦~_~

   由于asp.net中的Image控件是在System.Web.UI.WebControls命名空间中,所以不能像在winform中那样通过byte[]直接显示图片。 既然这样,就只能曲线救国了。这里的例子是这样的思路:showImage.aspx是最终用来显示文字和图片的页面,但是由于我们的图片需要曲线救国,所以这里另外建立一个pic.aspx。在pic.aspx页面中我们显示图片,而将showImage.aspx中的Image控件的url设为pic.aspx。最终我们完成了要求。

showImage.aspx的代码如下

<td height="25" align="right">照片:   </td>
<td>
<asp:Image ID="Image1" runat="server" Width="80" Height="80"/>
</td>

showImage.aspx.cs的代码如下

private string tid = null;
protected void Page_Load(object sender, EventArgs e)
{
tid = Request.Params["tid"];
this.Image1.ImageUrl = "../show/pic.aspx?tid=" + tid;
}

pic.aspx.cs的代码如下:

protected void Page_Load(object sender, EventArgs e)
{
string tid = Request.Params["tid"].ToString();
Response.BinaryWrite(getImage(id));//getImage(id)代表图片的byte[]数据,数据类型是byte[]
}

如果是通过调用cgi返回图片数据,需要将结果先转换成byte[],方法是:

string cgi = "http://……………………/img_loader.cgi?img=EF6BF9DD6CBB46E6B0524487B1EE5DBA.jpg";
System.Net.HttpWebRequest webrequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(cgi);
System.Net.HttpWebResponse webresponse = (System.Net.HttpWebResponse)webrequest.GetResponse();
byte[] b = null;
using (Stream stream = webresponse.GetResponseStream())
using (MemoryStream ms = new MemoryStream())
{
int count = ;
do
{
byte[] buf = new byte[];
count = stream.Read(buf, , );
ms.Write(buf, , count);
} while (stream.CanRead && count > );
b = ms.ToArray();
}
webresponse.Close();
Response.BinaryWrite(b);

网上很多都是这样处理的,但是会报错,因为不知道网络会传输多少长度的stream过来。

byte[] b=new byte[stream.length];
stream.Read(b,,b.length);
stream.Seek(,SeekOrigin.Begin);

如果要用本地一张图片来测试,可以用这种方式来获取图片的byte[]数据:

FileStream files = new FileStream("D:/full.png", FileMode.Open);
byte[] imgByte = new byte[files.Length];
files.Read(imgByte, , imgByte.Length);
files.Close();

在imge控件中直接显示图片(图片是byte[]格式)的更多相关文章

  1. HTMLbutton控件中文字显示一直不居中

    在写HTML时,发现HTML中button控件中文字显示一直不居中, 最后发现是在标签前出现了一个全角空格引起的. 在Emeditor中将不显示的字符(空格,全角空格,换行,制表符)设置为显示,就可以 ...

  2. wpf 保存控件中的内容为图片格式

    黄色的是wpf控件的名称! //保存到特定路径            FileStream fs = new FileStream(@"C:\image.png", FileMod ...

  3. OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中

    OpenCV 2.2 以及后面的版本号取消掉了 CvvImage.h 和CvvImage.cpp 两个文件,直接导致了苦逼的程序猿无法调用里面的显示函数来将图片显示到 MFC 的 Picture Co ...

  4. 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。

    原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图.谷歌中国中文地图. 最近正好有点业余时间,所以在做做各种地图.Bing Map控件本身就能显示必应地图,但是很遗憾微软 ...

  5. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    版权声明:本文为博主原创文章,转载请注明CSDN博客源地址! 共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/26404733   ...

  6. [Android] 拍照、截图、保存并显示在ImageView控件中

    近期在做Android的项目,当中部分涉及到图像处理的内容.这里先讲述怎样调用Camera应用程序进行拍照,并截图和保存显示在ImageView控件中以及遇到的困难和解决方法.     PS:作者购买 ...

  7. C# WinForm中 让控件全屏显示的实现代码

    夏荣全 ( lyout(at)163.com )原文 C#中让控件全屏显示的实现代码(WinForm) 有时候需要让窗口中某一块的内容全屏显示,比如视频播放.地图等等.经过摸索,暂时发现两种可行方法, ...

  8. 在RichTextBox控件中插入图片

    . 在RichTextBox控件中插入图片 关键点 . 实现过程 .   public void ShowInsertImageDlg() {     OpenFileDialog OpenFileD ...

  9. 在RichTextBox控件中添加图片和文字

    public void SetText(RichTextBox rtb) { rtb.Text = "在RichTextBox控件中添加图片和文字" + Environment.N ...

随机推荐

  1. 使用JAVA客户端对HDFS进行代码编写(五)

    在linux中,在JAVA中编程,耗时的不是代码的编写而是环境的搭建,版本的选择...日了苍天,昨天eclipse突然抽风在linux运行不起来,耗了几个小时,试了各种办法...现在windows环境 ...

  2. 原生JS写Ajax的请求函数

    一.JS原生ajax ajax:一种请求数据的方式,不需要刷新整个页面:ajax的技术核心是 XMLHttpRequest 对象:ajax 请求过程:创建 XMLHttpRequest 对象.连接服务 ...

  3. 利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨

    1.使用matlab制作.coe文件 查找表的构造 构造256点的正余弦表 exp(-j*2*pi*(0:255)/256),分别得到 cos和sin的查找表 matlab代码: 求sin fid = ...

  4. Expert Shell Scripting

    Expert Shell Scripting 好好学习这本书

  5. Spring MVC 教程,快速入门,深入分析(转载)

    作者:赵磊 博客:http://elf8848.iteye.com 下载: Spring的官方下载网址是:http://www.springsource.org/download    (本文使用是的 ...

  6. 从相对路径说开来(从C++到Qt)

    从相对路径说开来(从C++到Qt) 转载自:http://blog.csdn.net/dbzhang800/article/details/6363165 在Qt论坛经常看到网友抱怨: QPixmap ...

  7. mysql处理字符串的两个绝招:substring_index,concat

    mysql处理字符串的两个绝招:substring_index,concat 最近老是碰到要处理数据库中字符串的处理,发现用来用去也就是这两个函数: 1.substring_index(str,del ...

  8. 【HDOJ】1813 Escape from Tetris

    bfs预处理一点到边界的最小距离,IDA*求出可行方案.注意按字典序初始化dir数组.并且存在中间点全为1,边界含0的可能性(wa了很多次).此时不输出任何命令. /* 1813 */ #includ ...

  9. Linux&shell 之Shell命令进阶

    写在前面:案例.常用.归类.解释说明.(By Jim) 监控程序a.进程查看ps -ef(-e表示系统上运行的所有进程,-f用于扩展输出一些有用的信息列.)ps -efH(-H参数可以将进程组织为分层 ...

  10. POJ-2774-Long Long Message(后缀数组-最长公共子串)

    题意: 给定两个字符串 A 和 B,求最长公共子串. 分析: 字符串的任何一个子串都是这个字符串的某个后缀的前缀. 求 A 和 B 的最长公共子串等价于求 A 的后缀和 B 的后缀的最长公共前缀的最大 ...