It looks like a few people are interested in having this functionality in vil.
One obstacle is about how to *access* the meta data once it is loaded.
The best candidate solution I can come up with so far is to utilize
vil_property. The benefit is that we do not need to change much of the
existing functions or to add new ones. However, there are a few issues
that must be addressed before we can proceed with this approach:
1) Addition of tags: The number of standard tags defined in EXIF is
quite large (see the link below). Of course we can manually add only
those commonly-used ones into vil_property.h. Or we can use the tags
as it is, "Exif.Image.DateTime" for instance, without polluting the
vil_property.h header file.
2) Potential security hazard: since the
vil_image_resource::get_property() function does not have any boundary
checks, it is possible for some bad guy to overflow a memory buffer
with a particularly long string embedded in a image. Are we going to
just let it be or somehow force a check?
3) Data types: The "Rational" data structure has to be introduced into
vil before tags such as "Exif.Photo.ExposureTime" can be assessed.
Though vnl has vnl_rational, because both are level 1 libaries, vil
cannot use vnl_rational.
I guess for now I will implement this functionality in my internal
project. Once I am confident enough about my implementation and also
these issues are cleared, I'll try to put it in vil. Comments and
suggestions are welcome!
On Tue, Jul 1, 2008 at 11:50 AM, Ian Scott
> We have never used it, but getting more info out of JPEG files would always
> be useful. I'd be particularly interested in getting the resolution info
> If you incorporate the EXIF reading into core/vil/file_formats/vil_jpeg.*
> then you could either write your own parser, or add libexif to v3p and use
> that. If you only have a few small tags you are interested in then the
> former approach might be easier overall.
> Gehua Yang wrote:
>> Hi Folks,
>> Does anyone have experience with extracting EXIF meta data from JPEG
>> images? As far as I know, vil does not have this functionality (yet).
>> I am kind of probing around and see if anyone in VXL community has
>> this knowledge.
>> One way for me to accomplish this is to exploit a 3rd party library,
>> e.g., libexif or Exiv2, and place it in my own project. On the other
>> hand, before making the decision and getting down the path of
>> implementation, It will be good to know if anyone is also interested
>> in this functionality.