在本地数据库中保存大图片
本文关键字:保存 数据库 | 更新日期: 2023-09-27 18:16:04
我可以在本地数据库中保存地址簿中的联系人图像。但我可以这样做,当我在Visual Studio的Windows Phone模拟器中创建photo in camera时。当我从不同的相册向联系人添加照片时,我的应用程序没有启动。这是我在数据库中添加图片的方法。但它适用于小尺寸的图片。如何对所有尺寸的图片都这样呢?
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();
}
}
}
您可以直接将图片作为BLOB插入数据库,最大允许65535字节。如果您需要更多,请考虑使用MEDIUMBLOB(16777215字节)或LONGBLOB(4294967295字节)。有关更多信息,请参见字符串类型的存储要求