java byte 图片浏览器直接显示_在imge控件中直接显示图片(图片是byte[]格式)
在工作过程中遇到了这个问题,在网上查了一些资料,结合自己的解决方法及解决过程总结了下,方面以后查阅。如果能帮到同样遇到这个问题的你,将非常高兴哦~_~
由于asp.net中的Image控件是在System.Web.UI.WebControls命名空间中,所以不能像在winform中那样通过byte[]直接显示图片。 既然这样,就只能曲线救国了。这里的例子是这样的思路:showImage.aspx是最终用来显示文字和图片的页面,但是由于我们的图片需要曲线救国,所以这里另外建立一个pic.aspx。在pic.aspx页面中我们显示图片,而将showImage.aspx中的Image控件的url设为pic.aspx。最终我们完成了要求。
showImage.aspx的代码如下
照片:
showImage.aspx.cs的代码如下
private string tid = null;protected void Page_Load(objectsender, EventArgs e)
{
tid= Request.Params["tid"];this.Image1.ImageUrl = "../show/pic.aspx?tid=" +tid;
}
pic.aspx.cs的代码如下:
protected void Page_Load(objectsender, 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 = newMemoryStream())
{int count = 0;do{byte[] buf = new byte[1024];
count= stream.Read(buf, 0, 1024);
ms.Write(buf,0, count);
}while (stream.CanRead && count > 0);
b=ms.ToArray();
}
webresponse.Close();
Response.BinaryWrite(b);
网上很多都是这样处理的,但是会报错,因为不知道网络会传输多少长度的stream过来。
byte[] b=new byte[stream.length];
stream.Read(b,0,b.length);
stream.Seek(0,SeekOrigin.Begin);
如果要用本地一张图片来测试,可以用这种方式来获取图片的byte[]数据:
FileStream files = new FileStream("D:/full.png", FileMode.Open);byte[] imgByte = new byte[files.Length];
files.Read(imgByte,0, imgByte.Length);
files.Close();
java byte 图片浏览器直接显示_在imge控件中直接显示图片(图片是byte[]格式)相关推荐
- pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...
- wpf加载上千张图片部分图片不显示_开源WPF控件库MaterialDesignInXAML推荐
(给DotNet加星标,提升.Net技能) 转自:沙漠之狐耶dotnet9.com/?p=2180 前言 介绍一个开源的C# WPF开源控件库,非常漂亮,重点是开源哦 WPF做桌面开发是很有优势的,除 ...
- 在MFC的picture控件中如何显示Mat图
首先,要进行输入检查,看Mat数据是否是有效的,如下图中所示 定义位图数据结构,用以方便在图形设备接口(GraphicsDeviceInterface)上显示,也就是windows上的GDI 开发内存 ...
- outlook日历不显示_如何在Outlook Online中突出显示不同的日历
outlook日历不显示 If you've ever displayed multiple calendars in one view in Outlook Online, you'll know ...
- matlab 表格控件,[转载]matlab读取excel数据并显示在excel(activex控件)中
figure; spreadsheet = actxcontrol('OWC11.Spreadsheet.11',[0 0 560 420]); M = {'abc', 123; 12.17, log ...
- matlab在activex中读取视频,[转载]matlab读取excel数据并显示在excel(activex控件)中
figure; spreadsheet = actxcontrol('OWC11.Spreadsheet.11',[0 0 560 420]); M = {'abc', 123; 12.17, log ...
- C#+AE 调整TOCControl控件中图层的显示顺序
基本思路如下:利用鼠标左键将需要调整顺序的图层移动至目标位置. ①需要涉及到TOCControl的OnMouseDown事件来获取要调整的图层, ②OnMouseUp事件获得目标图层和索引号, ③再利 ...
- 用image控件不能正常显示Sql server2000数据库中的图片
用image控件不能正常显示Sql server2000数据库中的图片 Delphi / Windows SDK/API http://www.delphi2007.net/DelphiMultime ...
- Qt 实现QT控件中的QLabel显示图片并自适应显示
一.需求 实现QT控件中的QLabel显示图片,并自适应显示. 二.代码 QImage Image; Image.load(":/image/image/logo.jpg"); Q ...
最新文章
- 2015年12月流量入口占比动态:仅直接访问实现上涨
- MYSQL 练习题
- 人像摄影哪家强?同为双摄的OPPO R11不敌金立S10
- python+PyQT+Eric安装配置
- 博达3956交换机配置手册_网络设备维保浅谈之交换机维保
- 说明多级指针与动态变量,静态变量关系的几个简单程序
- 金刚爸爸是这么教育金刚儿子的
- get_posts 函数 | wordpress
- STP根交换机,指定端口,根端口,阻塞端口
- axure 坐标扩散效果
- MicroSIP软电话安装配置说明
- cat5e跑万兆_cat5e网线支持千兆吗?
- 关于Y400 电源管理 Win10解决方案
- springboot借助sftp将文件上传到远端的nginx服务器中,然后将文件路径存进数据库
- 【冬瓜哥手绘】致敬龙芯!冬瓜哥手工设计了一个CPU译码器!
- 识别各种安全设备及当今体现形态-区别UTM与NGFW
- 系统登录页面短信验证码方式登录实现
- Linux下convert批处理的命令及其与Windows下nconvert的区别与联系
- python子图标题_python, 如何在subplot在总的图画上面加title?
- Python中 *args,**args的详细用法
热门文章
- android textview adapter,Android在FragmentPagerAdapter中的Fragment中设置TextView文本
- mysql5.7 存储二进制_MySQL5.7 基于二进制包的安装
- JNDI学习总结(一)——JNDI数据源的配置(转)
- IDC带宽测试几款软件(Multiping pingPlotter TracertGUI )
- socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次
- Coding List
- 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题...
- JavaScript菜鸽子基础知识总结(一)
- 关于计算Java程序运行时间
- Cisco职业认证再认证体系及程序问答