在本地数据库中保存大图片

本文关键字:保存 数据库 | 更新日期: 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字节)。有关更多信息,请参见字符串类型的存储要求