Я разрабатываю систему, которая позволяет загружать изображение на сервер с использованием ASP.NET C #.Я обрабатываю изображение, и все работает отлично.Мне удалось найти метод, который считывает данные EXIF Date Created и анализирует его как DateTime.Это тоже прекрасно работает.
Я сейчас пытаюсь прочитать данные GPS из EXIF.Я хочу получить данные о широте и долготе.
Я использую этот список в качестве ссылки на данные EXIF (используя числа для элементов свойств) http://www.exiv2.org/tags.html
Вотметод для захвата созданной даты (который работает).
public DateTime GetDateTaken(Image targetImg)
{
DateTime dtaken;
try
{
//Property Item 306 corresponds to the Date Taken
PropertyItem propItem = targetImg.GetPropertyItem(0x0132);
//Convert date taken metadata to a DateTime object
string sdate = Encoding.UTF8.GetString(propItem.Value).Trim();
string secondhalf = sdate.Substring(sdate.IndexOf(" "), (sdate.Length - sdate.IndexOf(" ")));
string firsthalf = sdate.Substring(0, 10);
firsthalf = firsthalf.Replace(":", "-");
sdate = firsthalf + secondhalf;
dtaken = DateTime.Parse(sdate);
}
catch
{
dtaken = DateTime.Parse("1956-01-01 00:00:00.000");
}
return dtaken;
}
Ниже моя попытка сделать то же самое для GPS ..
public float GetLatitude(Image targetImg)
{
float dtaken;
try
{
//Property Item 0x0002 corresponds to the Date Taken
PropertyItem propItem = targetImg.GetPropertyItem(2);
//Convert date taken metadata to a DateTime object
string sdate = Encoding.UTF8.GetString(propItem.Value).Trim();
dtaken = float.Parse(sdate);
}
catch
{
dtaken = 0;
}
return dtaken;
}
Значение, которое выходит и в sdate:"5 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0l \ t \ 0 \ 0d \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0"
И этоИсходя из изображения, полученного с iPhone 4, на котором есть данные GPS EXIF.
Я знаю, что есть классы, которые делают это, но предпочли бы написать свои собственные, хотя я открыт для предложений:-)
Заранее спасибо.