从数据库里取出应该是byte[] byte[] b = 数据库字段;MemoryStream ms = new MemoryStream(b); ImageList imageList = new ImageList(); imagelist.Items.Add(Image.FormStream(ms));listView.ImageList = imageList;
Dim ImgList As New ImageList ImgList.ColorDepth = ColorDepth.Depth24Bit ImgList.ImageSize = New Size(120, 120)Dim ms As MemoryStream = New MemoryStream(CType(dr(3), Byte())) ImgList.Images.Add(Image.FromStream(ms)) Lv_Image.LargeImageList = ImgList Lv_Image.Items.Add(Trim(dr(2).ToString())) Lv_Image.Items(i).ImageIndex = i将就看看,稍微改下就可以了
ImageList ImgList = New ImageList ImgList.ColorDepth = ColorDepth.Depth24Bit ImgList.ImageSize = New Size(120, 120)MemoryStream ms = New MemoryStream(CType(dr[3], Byte[])) ImgList.Images.Add(Image.FromStream(ms)) Lv_Image.LargeImageList = ImgList Lv_Image.Items.Add(Trim(dr[3].ToString())) Lv_Image.Items(i).ImageIndex = i
首先数据库里面的是十六进制,不是二进制。要想显示,直接从数据库里显示,要想转换成图片,首先要先转换成byte[] 型。 string s = "0x89504E470D0A1A0A0"; byte[] b = System.Text.Encoding.ASCII.GetBytes(s); MemoryStream ms = new MemoryStream(b); Image image = Image.FormStream(ms);
byte[] 转换成 字符串 是 string s = System.Text.Encoding.ASCII.GetString(b); 而不是 string s = b.ToString();
MemoryStream ms = new MemoryStream(imagebuffer);
Bitmap image = new Bitmap(ms);
现在是动态显示 把所有内容都显示到ListView中, 然后点ListView 又能在下面的TextBox里显示内容, 如果是图片就显示在pictureBox里。
在ListView里可以不用显示图片。
但点那一行之后如果有图片就要把图片显示在pictureBox里,
那现在是怎么获得他的Type[] ? 是再在数据库里查询还是直接在ListView里获取 如果在ListView获取要怎么获取 如果是要查询要怎么查询?我的ListView里都是动态生成的 如果查询好乱。
byte[] b = 数据库字段;MemoryStream ms = new MemoryStream(b);
ImageList imageList = new ImageList();
imagelist.Items.Add(Image.FormStream(ms));listView.ImageList = imageList;
Dim ImgList As New ImageList
ImgList.ColorDepth = ColorDepth.Depth24Bit
ImgList.ImageSize = New Size(120, 120)Dim ms As MemoryStream = New MemoryStream(CType(dr(3), Byte()))
ImgList.Images.Add(Image.FromStream(ms))
Lv_Image.LargeImageList = ImgList
Lv_Image.Items.Add(Trim(dr(2).ToString()))
Lv_Image.Items(i).ImageIndex = i将就看看,稍微改下就可以了
listview.LargeImageList = imageList1指定图片的来源
ImageList ImgList = New ImageList
ImgList.ColorDepth = ColorDepth.Depth24Bit
ImgList.ImageSize = New Size(120, 120)MemoryStream ms = New MemoryStream(CType(dr[3], Byte[]))
ImgList.Images.Add(Image.FromStream(ms))
Lv_Image.LargeImageList = ImgList
Lv_Image.Items.Add(Trim(dr[3].ToString()))
Lv_Image.Items(i).ImageIndex = i
首先数据库里面的是十六进制,不是二进制。要想显示,直接从数据库里显示,要想转换成图片,首先要先转换成byte[] 型。
string s = "0x89504E470D0A1A0A0";
byte[] b = System.Text.Encoding.ASCII.GetBytes(s);
MemoryStream ms = new MemoryStream(b);
Image image = Image.FormStream(ms);
string s = System.Text.Encoding.ASCII.GetString(b);
而不是
string s = b.ToString();