我正在构建一个应用程序,除其他外,让用户拍摄一张照片,然后将照片和其他信息(如这张照片拍摄地点的位置 - 使用手机的 GPS 等)保存在数据库。
我使用字符串将图片保存到数据库。到现在为止还挺好。我的问题是,在用户捕获图片后,我无法在任何地方找到图片的路径(以便稍后向用户显示) 我知道如果我使用图像而不是字符串,我可以显示图片但是然后我无法将其保存到数据库中。
此外,我使用图片字符串(应该是图片的路径)作为我表中的 primaryKey 列,如果字符串为空,这肯定是个问题。
在互联网上检查后,我发现你不能在模拟器上使用 GeoCoordinateWatcher(用于 GPS),所以我不得不使用一个随机的地方。这让我想到,模拟器拍的照片可能没有路径??
我的部分代码:(相机事件和将所有内容保存到数据库的 bottun)
void c_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show(e.ChosenPhoto.Length.ToString());
//Code to display the photo on the page in an image control named myImage.
BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(e.ChosenPhoto);
myImage.Source = bmp;//display the picture right after taking it. before saving to DB
p.UrlImage = bmp.UriSource.AbsolutePath;//Do not Work!
}
}
private void saveToDB_Click(object sender, RoutedEventArgs e)
{
p.Description = DesriptionList.SelectedValue.ToString();//description of the pic
p.Date = DateTime.Today;//date picture taken
GeoCoordinateWatcher myWatcher = new GeoCoordinateWatcher();
var myPosition = myWatcher.Position;
p.Location = myPosition.Location.Altitude+" "+myPosition.Location.Latitude;//do not work with emulator
p.Location = "Some Where Over The Rainbow";
MainPage.m._bl.addPic(p);//add pic to DB
MessageBox.Show("Added Successfully! :)");
NavigationService.Navigate(new Uri(@"/Intro.xaml", UriKind.Relative));//go to another page
}
}
我的课:
[Table]
public class Picture
{
public Picture()
{
}
public Picture(string l, string d, string url, DateTime da)
{
Location = l;
Description = d;
UrlImage = url;
Date = da;
}
string location;
[Column]
public string Location
{
get { return location; }
set { location = value; }
}
string urlImage;
[Column (IsPrimaryKey=true)]
public string UrlImage
{
get { return urlImage; }
set { urlImage = value; }
}
DateTime date;
[Column]
public DateTime Date
{
get { return date; }
set { date = value; }
}
string description;
[Column]
public string Description
{
get { return description; }
set { description = value; }
}
}
}
无论如何-我想知道我是否可以通过某种方式获得路径...而且-如果我无法获得路径-Windows是否有“更好”的模拟器?这个模拟器不能做很多事情,这很烦人,因为我没有 WP 来检查我的应用程序。谢谢!