我最近刚开始研究WP7,在用SQLite存取图片时遇到个问题,希望高手们指点。
图片转换成二进制存到SQLite时是 byte[14361],读出来时却成了byte[13],数据库里图片存储格式是Blob。Why?
这是我的代码:
//把图片转换成二进制存入sqlite private byte[] SetPicture() { BitmapImage bit = new BitmapImage(new Uri("image.jpg", UriKind.Relative)); Image image = new Image(); image.Source = bit; this.image1.Source = bit; WriteableBitmap bmp = new WriteableBitmap(image.Source as BitmapSource); byte[] byteArray; using (MemoryStream stream = new MemoryStream()) { bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100); byteArray = stream.ToArray(); } return byteArray; }
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { SQLiteConnection mySqliteDB = new SQLiteConnection("SQLiteDB"); mySqliteDB.Open(); SQLiteCommand cmd = mySqliteDB.CreateCommand("select*from FriendTable"); IEnumerable<Friend> list = cmd.ExecuteQuery<Friend>(); List<FriendPct> listfd = new List<FriendPct>(); foreach(Friend item in list.ToList()) { FriendPct fp = new FriendPct(); fp.ID = item.ID; fp.Name=item.Name; fp.Phone = item.Phone; fp.Picture = GetPath(item.Picture); fp.Class = item.Class; fp.Firsttime = item.Firsttime; fp.Lasttime = item.Lasttime; fp.Callcount = item.Callcount; fp.Grade = item.Grade; fp.Popcount = item.Popcount; listfd.Add(fp); } this.Files.ItemsSource = listfd; } //二进制数组转图片 public static Image GetPath(byte[] b) { try { BitmapImage bit = new BitmapImage(); Stream ms = new MemoryStream(b); bit.SetSource(ms); Image img = new Image(); img.Source = bit; ms.Flush(); ms.Close(); return img; } catch (Exception ex) { return null; } }
上面IEnumerable<Friend> list。。。。list中返回的Picture为什么是byte[13]呢?
转载于:https://www.cnblogs.com/htfucc/archive/2012/08/02/2620521.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。