From: Stanislav B. <sb...@su...> - 2008-11-06 18:35:57
|
Torsten Curdt wrote: > for (t = 0; t < 0xffff; t++) { > name = exif_tag_get_title(t); > if (!name) { > continue; > } This is broken and can never work, as tags are unique only per IFD, not per EXIF. Use exif_tag_get_title_in_ifd. This bad assumption causes failure of GPS Latitude in most applications based on libexif (eog, libexif-gtk,...) libexif API is very confusing here. ExifTag is enum, something that is expected to be unique. But arguments of type ExifTag are not unique! To be able to implement such an ugly hack without compiler complains, half of these tags are defined in enum, the other half by #define. And there is not a better way to "list all tags currently known to libexif" than querying all 65536x5 possible tag/ifd combinations. There is another ugly hack to make this query with only 65538 steps: http://sourceforge.net/tracker/download.php?group_id=12272&atid=312272&file_id=284116&aid=2014281 > But it seems like I am not getting all information > > idf: GPS > GPS tag version = 0x02, 0x02, 0x00, 0x00 > InteroperabilityIndex = N > InteroperabilityVersion = 30.00, 13.00, 53.58 > East or West Longitude = W > Longitude = 89.00, 40.00, 11.16 -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sb...@su... Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ |