Я создаю приложение, которое должно, среди прочего, позволить пользователю сделать снимок, а затем сохранить изображение и другую информацию (например, местоположение того места, где была сделана эта фотография - использование GPS телефона и т. д.) на базе данных.Windows Phone 7.1 -Сохранение пути, сделанного камеройCaputreTask
Я использую строку для сохранения изображений в базе данных. Все идет нормально. Моя проблема в том, что после того, как пользователь захватил изображение, я не могу найти путь к картине anyWhere (чтобы отобразить его позже для пользователя) Я знаю, что я могу отобразить изображение, если я использую изображение, а не строку но тогда я не могу сохранить его в БД.
Также я использовал строку изображения (которая должна быть путь к изображению) как столбец primaryKey в моей таблице, и если строка равна null, это будет проблемой точно.
После проверки в Интернете я обнаружил, что вы не можете использовать GeoCoordinateWatcher (для GPS) на эмуляторе, поэтому мне пришлось использовать случайное место. Это привело меня к мысли, что изображение, сделанное эмулятором, может не иметь пути?
Часть моего кода: (Событие камеры и bottun, что позволяет экономить Everyting к БД)
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; }
}
}
}
Anyway- I Would как узнать, могу ли я каким-то образом получить путь ... А также - если я не могу получить путь - есть ли у Windows эмулятор «Лучше»? этот эмулятор не может сделать много, и это довольно раздражает, давая факт, что у меня нет WP, чтобы проверить мои приложения на .. Спасибо!
большое спасибо! :) – nati