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

   由于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. Android中的Selector的用法

    转自: Android中的Selector主要是用来改变ListView和Button控件的默认背景.其使用方法可以按一下步骤来设计: (以在mylist_view.xml为例) 1.创建mylist ...

  2. STM32 枚举类型和结构体的使用

    结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型.        首先结构体可以在一个结构中声明不同的数据类型.        第二相同结构的结构体变量是可以相互赋值的,而 ...

  3. 应用Oracle(用户创建和授权)

    使用oracle命令创建用户,并授权. 系统管理员身份登录 cmd中, sqlplus / as sysdba 若登录失败,则 sqlplus system/[数据库创建时指定密码] as sysdb ...

  4. Sereja ans Anagrams

    Codeforces Round #215 (Div. 1) B:http://codeforces.com/problemset/problem/367/B 题意:给你两个序列a,b,然后给你一个数 ...

  5. yum仅下载RPM包不安装

    http://www.ttlsa.com/linux/howto-yum-download-rpm-without-install/

  6. 了解运行时类型信息(RTTI)

    RTTI需要引用单元TypeInfo GetPropInfo 函数用于获得属性的 RTTI 指针 PPropInfo.它有四种重载形式,后面三种重载的实现都是调用第一种形式.AKinds 参数用于限制 ...

  7. Delphi文件映射

    http://www.cnblogs.com/key-ok/p/3429860.htmlhttp://www.cnblogs.com/key-ok/p/3380793.htmlhttp://www.c ...

  8. TinyMCE下载及使用

    1.TinyMCE下载 官方下载网址:http://www.tinymce.com/ 简体中文语言包下载:http://www.tinymce.com/i18n/index.php?ctrl=lang ...

  9. uoj#67. 新年的毒瘤(割顶)

    #67. 新年的毒瘤 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树. 这个长着毒瘤的树可以用n个结点m 条无向边的无向图表示.这个图中有一些结点被称作是毒瘤结点,即删掉这个结 ...

  10. [Java] JavaMail 简单案例

    网易提供了免费的 SMTP / POP3服务,可用于编程测试,详情见 什么是POP3.SMTP和IMAP? 只需要拥有一个网易邮箱账号,并开启该账号的 SMTP / POP3 功能,便可以通过程序发送 ...