public Dictionary<string, object> GPS()
{
Dictionary<string, object> Gps;
long gpsOffset;
if (!offsets.TryGetValue("gpsIFD", out gpsOffset)) {
return null;
}
Gps = extractTags(offsets["gpsIFD"], tags["gps"]);
object GPSVersionID;
if (Gps.TryGetValue("GPSVersionID", out GPSVersionID)) {
if (GPSVersionID is string[]) {
Gps["GPSVersionID"] = string.Join(".", (string[])GPSVersionID);
}
}
// store the keys separately (required for JS part to iterate over)
if (!Gps.ContainsKey("keys"))
{
string[] keys = new string[Gps.Keys.Count];
Gps.Keys.CopyTo(keys, 0);
Gps.Add("keys", keys);
}
return Gps;
}
public Dictionary <string, object> metaInfo() { ExifParser exifParser; Dictionary <string, object> tiff, exif, gps, thumb, meta; List <byte[]> headers = getHeaders("app1"); meta = new Dictionary <string, object>(); try { if (headers.Count != 0) { exifParser = new ExifParser(); if (exifParser.init(headers[0])) { tiff = exifParser.TIFF(); if (tiff != null) { meta.Add("tiff", tiff); } exif = exifParser.EXIF(); if (exif != null) { meta.Add("exif", exif); } gps = exifParser.GPS(); if (gps != null) { meta.Add("gps", gps); } thumb = getThumb(exifParser); if (thumb != null) { if (!thumb.ContainsKey("keys")) { string[] keys = new string[thumb.Keys.Count]; thumb.Keys.CopyTo(keys, 0); thumb.Add("keys", keys); } meta.Add("thumb", thumb); } exifParser.purge(); } } } catch (Exception ex) {} return(meta); }