C# 在本地数据库中保存重要图片
我可以将通讯录中联系人的图像保存在本地数据库中。但我可以做到,当我在VisualStudio的WindowsPhone模拟器中用相机拍摄照片时。当我从不同相册向联系人添加照片时,我的应用程序不会启动。这是我在数据库中添加图片的方法。但它适用于小尺寸图片。我怎样才能为所有尺寸的图片做到这一点C# 在本地数据库中保存重要图片,c#,database,image,windows-phone-7,windows-phone-8,C#,Database,Image,Windows Phone 7,Windows Phone 8,我可以将通讯录中联系人的图像保存在本地数据库中。但我可以做到,当我在VisualStudio的WindowsPhone模拟器中用相机拍摄照片时。当我从不同相册向联系人添加照片时,我的应用程序不会启动。这是我在数据库中添加图片的方法。但它适用于小尺寸图片。我怎样才能为所有尺寸的图片做到这一点 foreach (var result in e.Results) { using (ContactsListDataContext db = new ContactsListDataContext(
foreach (var result in e.Results)
{
using (ContactsListDataContext db = new ContactsListDataContext(DBConnectionstring))
{
var stream = result.GetPicture();
if (stream != null)
{
BitmapImage _newPhoto = new BitmapImage();
_newPhoto.SetSource(stream);
MemoryStream _memoryStream = new MemoryStream();
WriteableBitmap _writingNewPhoto = new WriteableBitmap(_newPhoto);
_writingNewPhoto.SaveJpeg(_memoryStream, _writingNewPhoto.PixelWidth, _writingNewPhoto.PixelHeight, 0, 95);
byte[] _arrayForDB = _memoryStream.ToArray();
_memoryStream.Close();
var _newEmail = result.EmailAddresses.FirstOrDefault().EmailAddress;
var _newName = result.DisplayName;
db._contacts.InsertOnSubmit(new MyContactsList { Name = _newName, Email = _newEmail, ItemImage = _arrayForDB });
_listContactData.Add(new ContactsModel()
{
ContactName = result.DisplayName,
ContactEmail = result.EmailAddresses.FirstOrDefault().EmailAddress,
ContactImage = ByteArraytoBitmap(_arrayForDB)
});
db.SubmitChanges();
}
}
}
您可以将图片直接插入数据库,最多允许65535字节。如果您需要更多地考虑使用MyMub BLUB 16777215字节或长BLUBB 4294967295字节。有关更多信息,请参见为什么它不适用于较大的图片?您是否有错误?尝试使用较大尺寸的图像时,您会收到什么错误消息?我不知道。db.SubmitChanges();在这一行中,我的项目将Sbyte数组截断为8000长度。在这种情况下,请参见