黑马程序员技术交流社区
标题:
c#.net中,如何将img控件的图片转化为2进制数组?
[打印本页]
作者:
狄琛林
时间:
2012-9-18 10:51
标题:
c#.net中,如何将img控件的图片转化为2进制数组?
本帖最后由 狄琛林 于 2012-9-21 17:54 编辑
在c#.net中,如何将img控件的图片转化为2进制数组?
作者:
林洲
时间:
2012-9-18 11:17
本帖最后由 林洲 于 2012-9-18 11:18 编辑
可以通过如下代码,将图片转换为二进制的数组:
//创建一个文件流打开图片
FileStream fs = File.Open(imgURL, FileMode.Open);//imgURL图片物理地址
//声明一个byte[]数组接受图片byte信息
byte[] fileBytes = new byte[fs.Length];
复制代码
作者:
许庭洲
时间:
2012-9-18 16:02
//将数据库中的Image类型转换成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
}
作者:
彭张铨
时间:
2012-9-18 17:22
个人习惯用这种方法:
Stream s=File.OpenRead(imgUrl);
BinaryReader br=new BinaryReader(s);
byte[] bt = br.ReadBytes((int)s.Length);
作者:
孔德智
时间:
2012-9-18 17:29
1.用GetDC获取一个窗口或桌面的DC句柄
2.用CreateCompatibleDC创建一个内存DC
3. 用SelectObject(hDC, Image1.Picture.Handle)将image1中的图片选入内存DC中,之前必须用Loadpicture或通过属性窗口向Image1中载入一幅图片
4. 再定义一个三维数组arrBits(0 to 3, lWidth-1, lHeight-1) as byte,这里的lWidth和lHeight是图形的宽和高,以像素为单位,stdPicture的长度单位是Himetric,需要乘以一个常量96 / 2540将其转换为像素
5.然后用GetDIBits将每个像素的RGB颜色值放到数组中
这样就将每个像素的RGB颜色信息放入arrBits数组中了,arrBits(0,x,y)表示从图片左下角算起横向第x,纵向第y个像素的蓝色亮度值,arrBits(1,x,y)和arrBits(2,x,y)则分别代表该点的绿色和红色的亮度,arrBits(3,x,y)为保留字节。
————————————摘自http://club.excelhome.net/thread-400986-1-1.html
里面有具体代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2