UWP 应用程序将图像(路径)添加到 SQLite 数据库
UWP app add an image (path) to SQLite Database
您好,我正在创建一个 UWP 应用程序,并使用以下方法上传图片。
async void imageButton_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker open = new FileOpenPicker();
open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
open.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
open.FileTypeFilter.Clear();
open.FileTypeFilter.Add(".bmp");
open.FileTypeFilter.Add(".png");
open.FileTypeFilter.Add(".jpeg");
open.FileTypeFilter.Add(".jpg");
// Open a stream for the selected file
StorageFile file = await open.PickSingleFileAsync();
// Ensure a file was selected
if (file != null)
{
// Ensure the stream is disposed once the image is loaded
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
// Set the image source to the selected bitmap
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.DecodePixelHeight = 200;
bitmapImage.DecodePixelWidth = 200;
await bitmapImage.SetSourceAsync(fileStream);
image.Source = bitmapImage;
}
}
}
我在 SQLite 中创建了一个数据库,我想将图像路径添加到数据库中,但我不知道如何使用 UWP 应用对其进行编码。感谢您的帮助。
我建议您将 byte[] 存储在 SQLite table 的 blob 列中。
这里有一个很好的 post 关于它 http://andywigleyblog.azurewebsites.net/?p=117
它具有读取和保存图像所需的信息。
最重要的部分是转换方法
private byte[] ConvertToBytes(BitmapImage bitmapImage)
{
byte[] data = null;
using (MemoryStream stream = new MemoryStream())
{
WriteableBitmap wBitmap = new WriteableBitmap(bitmapImage);
wBitmap.SaveJpeg(stream, wBitmap.PixelWidth, wBitmap.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
data = stream.GetBuffer();
}
return data;
}
与 SQLite 通信可以使用 Entity Framework7,如何使用它的文章可以找到 here。但是有一个问题,它只是发布候选版本 (EF 7.0.0-rc1) 并且在编译为 .NET Native 时存在问题。
您好,我正在创建一个 UWP 应用程序,并使用以下方法上传图片。
async void imageButton_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker open = new FileOpenPicker();
open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
open.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
open.FileTypeFilter.Clear();
open.FileTypeFilter.Add(".bmp");
open.FileTypeFilter.Add(".png");
open.FileTypeFilter.Add(".jpeg");
open.FileTypeFilter.Add(".jpg");
// Open a stream for the selected file
StorageFile file = await open.PickSingleFileAsync();
// Ensure a file was selected
if (file != null)
{
// Ensure the stream is disposed once the image is loaded
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
// Set the image source to the selected bitmap
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.DecodePixelHeight = 200;
bitmapImage.DecodePixelWidth = 200;
await bitmapImage.SetSourceAsync(fileStream);
image.Source = bitmapImage;
}
}
}
我在 SQLite 中创建了一个数据库,我想将图像路径添加到数据库中,但我不知道如何使用 UWP 应用对其进行编码。感谢您的帮助。
我建议您将 byte[] 存储在 SQLite table 的 blob 列中。 这里有一个很好的 post 关于它 http://andywigleyblog.azurewebsites.net/?p=117
它具有读取和保存图像所需的信息。
最重要的部分是转换方法
private byte[] ConvertToBytes(BitmapImage bitmapImage)
{
byte[] data = null;
using (MemoryStream stream = new MemoryStream())
{
WriteableBitmap wBitmap = new WriteableBitmap(bitmapImage);
wBitmap.SaveJpeg(stream, wBitmap.PixelWidth, wBitmap.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
data = stream.GetBuffer();
}
return data;
}
与 SQLite 通信可以使用 Entity Framework7,如何使用它的文章可以找到 here。但是有一个问题,它只是发布候选版本 (EF 7.0.0-rc1) 并且在编译为 .NET Native 时存在问题。